如何遍历文件中的一行
How to iterate over a line in a file?
我有一个文件,其中包含以行组织并以空格分隔的整数。行数和长度都是未知的。
我目前正在逐行迭代文件,我正在尝试逐字符迭代每行,但我遇到了一些麻烦。我目前将每行的内容存储到一个字符串中,但我怀疑这不是最好的方式,我希望有人能给我指出正确的方向。
下面是我当前的代码,它只是打印文件中的每一行:
std::string filename = "values.txt";
std::ifstream file(filename.c_str());
std::string line;
while (std::getline(file, line))
{
std::cout << line << std::endl;
}
我来自python,它可以很容易地实现这个,像这样:
for line in file:
for char in line:
print char
然而,不知道for循环的长度/行数让我很困惑,因为我是c++的新手。我还想把字符读成整型而不是字符串,但我也没能弄清楚。在c++中实现这个最正确的方法是什么?
非常感谢任何帮助。
你就快成功了;您可以使用格式化的流提取来读取整数,使用字符串流来表示每行:
#include <fstream>
#include <sstream>
#include <string>
// ...
for (std::string line; std::getline(infile, line); )
{
std::istringstream iss(line);
for (int n; iss >> n; )
{
std::cout << "Have number: " << n << "n";
}
std::cout << "End of linen";
}
可以通过检查整个字符串流是否已被消耗来添加错误检查。
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 如何使代码打印文本文件中的第一行?
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 将字符串存储到文件下一行的变量中
- 为什么这个.c文件只有一行"../xx/xx.c"?
- 比较两个没有一行共同点的大文件
- 如何在c ++中以一行(水平)打印两个文件的数据?如给定的.这两种形式来自两个不同的文本文件
- 到达分隔符时跳到文本文件的下一行
- 从文本文件中读取一行并将其存储在 C++ 中的 2D 矢量中
- 从文本文件中随机选取一行
- 在获取从文件到矢量的每一行之后,数字将被更改或销毁
- 从文件中的一行读取特定数据-C++
- 从文本文件中的每一行读取数字,并计算数字重复的次数
- 为什么这一行不输出我的文本文件?
- 从文件读取并在一行中写入 cout
- 如何有效地读取C 中的最后一行文件
- 将一行文件读入对象中的两个变量