Я пытаюсь написать функцию GetSex()
, которая устанавливает значение перечисления Sex
и выводит его на консоль на C ++, используя значение из внешнего файла .txt, но я получаю всевозможные ошибки компиляции из-за на неправильный синтаксис.
Что здесь не так?
Код:
Sex GetSex(fstream&); //function prototype
enum Sex {M, F};
int main()
{
fstream inStream("InputText.txt"); //create fstream object
Sex mySex; // create enum object
mySex = GetSex(inStream);
cout << "Sex of first person is " << mySex;
return 0;
}
Sex GetSex(fstream& inStream)
{
//read in next letter in file
char sexChar;
inStream.get(sexChar);
// set enum from char
Sex mySex = static_cast<Sex>(sexChar);
return mySex;
}
InputText.txt содержит отдельные символы, каждый в новой строке, указывающий пол человека:
M
F
M
F
Ошибки:
ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание. C ++ не поддерживает default-int
(10,5): ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором GetSex
(21,9): ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором «mySex»
(21,9): ошибка C2065: «mySex»: необъявленный идентификатор
(22,5): ошибка C2065: «mySex»: необъявленный идентификатор
(22,13): ошибка C3861: 'GetSex': идентификатор не найден
(23,42): ошибка C2065: 'mySex': необъявленный идентификатор
(42,11 ): ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int
(42,1): ошибка C2086: 'int Sex': переопределение
(10): message: см. Объявление 'Sex'
(42,5): ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'GetSex'
(43,1): ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '{'
(43,1): ошибка C2447: '{': отсутствует заголовок функции (формальный список в старом стиле?)