【发布时间】:2020-09-11 22:50:17
【问题描述】:
我正在尝试编写一个函数 GetSex(),它设置一个枚举值 Sex,并使用来自外部 .txt 文件的值将其打印到 C++ 控制台,但由于出现各种编译错误语法不正确。
我这里有什么问题?
代码:
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): 消息:见“性”声明
(42,5):错误 C2146:语法错误:缺少 ';'在标识符“GetSex”之前
(43,1):错误 C2143:语法错误:缺少 ';'在'{'之前
(43,1): 错误 C2447: '{': 缺少函数头(旧式正式列表?)
【问题讨论】:
-
您应该将遇到的错误添加到问题中。