从ifstream中读取字符
reading characters from ifstream
我试图从文件中读取字符,但我陷入了无限循环,这是代码:
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream ifs("ifile.txt", ios_base::in);
int b;
while ((b = ifs.get()) != EOF)
{
cout << b << endl;
}
}
注意,我在创建.exe文件的项目调试文件夹中创建了一个名为ifile.txt的文件(我使用的是Microsoft visual studio 2013)
当我运行它时,它会陷入一个无限循环。不确定为什么会发生这种情况,但我认为可能是因为我创建了ifile.txt?
请永远不要在eof()
上循环——这几乎总是错误的。
试试这个:
ifstream ifs("ifile.txt", ios_base::in);
char b;
int letters[26] = {};
int numbers[10] = {};
while(ifs.get(b))) // much better !!
{
cout << b << endl;
}
ifs.close();
在解释中:
使用CCD_ 2有几个问题。EOF
只有在您尝试读取角色后才会触发。我知道这并不完全是你使用它的方式。另一个问题是,在流上发生错误后(可能是你的infimite循环?)EOF
不会被检查。这就是为什么最好检查读取是否成功,而不是是否到达文件结尾。
相关文章:
- 尝试一次将单个字符读取到大小不确定的数组中
- C++将 txt 数据和字符读取到 2D 数组中
- C++ UTF-8 瑞典语字符读取为 ASCII
- C++逐个字符读取二进制文件字符
- 逐个字符读取文件并使用<cctype>
- C 如何通过特定n字符读取TXT文件的值
- 如何使用4个字符读取C 的文本文件
- 使用C++中的字符读取具有文件 I/O 的文件
- 是否可以从C 中的文件中的线中的特定字符读取
- 将字符读取到数组
- 如何在 c++ 中逐个字符读取文件并通过 array_name[index] 访问它
- 如何从文本文件中读取,C++中逐个字符读取
- 如何将多个字符读取合并为std::向量
- 在 c++ 中逐个从文件字符读取
- C++ 中有多少个方法逐个字符读取字符串,以对每个字符执行所需的操作
- scanf 只能将 3 个字符读取到 5 位字符数组中
- 将行的前 X 个字符读取为字符串
- 逐个字符读取以查看它是否是数字
- 如何从字符**读取字符串
- 如何逐个字符读取文件的全部内容