如何迭代文件中的一行?

2024-04-24 15:15:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含整数的文件,这些整数被组织成行并用空格隔开。行的数量和长度都未知。你知道吗

我目前正在逐行遍历文件,并尝试逐行遍历每个字符,但遇到了一些问题。我目前正在将每一行的内容存储到一个字符串中,但我怀疑这不是最好的方法,我希望有人能给我指出正确的方向。你知道吗

下面是我当前的代码,它只打印文件中的每一行:

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++相当陌生。我还想把字符读作int而不是字符串,但我也没弄清楚。在c++中实现这一点最正确的方法是什么?你知道吗

非常感谢您的帮助。你知道吗


Tags: 文件方法字符串infor数量stringline
1条回答
网友
1楼 · 发布于 2024-04-24 15:15:13

就快到了;可以使用格式化流提取读取整数,使用字符串流表示每一行:

#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 line\n";
}

可以通过检查整个字符串流是否已被使用来添加错误检查。你知道吗

相关问题 更多 >