什么是 EOF 键C++
what is EOF key in C++
我正在使用Windows 7 Ultimate。我是C++新手。以下是我对开关语句的练习。
void GradeBook::inputGrades()
{
int grade;
cout << "Enter Grade: " << endl;
while((grade=cin.get()) != EOF)
{
switch(grade)
{
case 'A':
case 'a':
aCount++;
break;
case 'B':
case 'b':
bCount++;
break;
case 'C':
case'c':
cCount++;
break;
case 'd':
case 'D':
dCount++;
break;
case 'F':
case 'f':
fCount++;
break;
case 'n':
case ' ':
case 't':
break;
default:
cout << "Incorrect data. Re Enter" << endl;
break;
}
}
}
我在 netbeans 中运行它,我按下了所有组合 ctrl+c、ctrl+z、ctrl+d,但它并没有结束!!为什么?我做错了什么吗?请帮忙!!
EOF 字符是 Ctrl+Z,在 Windows 平台上后跟换行符。
据推测,Netbeans 中的控制台也是如此。
cin.get() 是相当低的水平。代码应使用更高级别的接口。它应该一次读取一个字符,所以这样写:
char grade;
while (cin >> grade)
流提取器将在文件末尾失败,这将使 while 循环终止。
相关文章:
- 如何确定我已使用非编码文件到达 EOF?
- std::ifstream::read 不会读取所有 512 字节,并设置 EOF 和失败位
- 而(!inputfile.eof())只读取第一行?
- EOF有更安全的替代方案吗?它在我的情况下不起作用
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 如何在 EOF 之前从文件中读取并将其放入字符串中?
- 如何在从文件中读取整数时使用 file.eof()?
- "eof"可以设置为流吗?
- 吃完 EOF 后重复使用 std::cin
- 文件处理,eof() 定义
- std::cin 在读取 EOF 并清除后不再读取
- 为什么 EOF 在循环扫描期间没有终止?
- cin.clear()是否保留EOF
- 而(getline(fin,str)){}即使在到达eof之后仍在处理数据
- 通过终端在文件中输入时检测EOF(文件结束)时出现问题
- 为什么如果我从键盘输入EOF克里昂不要在运行窗口打印程序的输出?
- 为什么"cin"在EOF之后不再wοrk?
- 在 <char>sizeof(int) == 1 的平台中如何编码 char_traits::eof() ?
- 读取 c++ istream 直到 EOF,同时丢弃内容
- 我的代码在捕获块中处理了正确的 eof 后到达 eof 时会引发 basic_ios::clear ?