我在从文件中读取整数时遇到问题。至于我的知识,它应该工作。你能告诉我这里做错了什么吗?
int fileCount = 0;
ifstream listFileStream ( fileName );
if ( listFileStream.is_open() ) {
listFileStream >> fileCount;
cout << fileCount;
}
即使文件的第一行是28,它也只打印0。
答案 0 :(得分:2)
您应该始终检查您是否尝试成功:
if (listFileStream >> fileCount) {
process(fileCount);
}
如果读取不成功,您可以尝试从中恢复或报告错误。以下是您尝试恢复的一种方法:将流恢复到良好状态并忽略第一个字符:
listFileStream.clear();
listFileStream.ignore();
如果不将流恢复到良好状态,则将忽略所有输入尝试。删除违规字符后,您将重试读取。