无法使用 istringstream 从.txt文件中读取

can't read from .txt file using istringstream

本文关键字:txt 文件 读取 istringstream      更新时间:2023-10-16

我正在尝试编写一个相当基本的程序,它使用 istringstream 读取.txt文件,但由于某种原因,这段代码:

int main(int argc,char* argv[])
{
    std::string filename = "test.txt";
    std::stringstream file(filename);
    while (std::getline(file, filename))
    {
        std::cout << "n" << filename;
    }
    return 0;
}

仅打印:
测试.txt

我尝试读取的文件是一个名为test的.txt文件.txt由Windows编辑器创建,其中包含:
测试1
测试2
测试3
我正在使用Visual Studio 2017进行编译。

假设您的目标是读取文件中的每个条目,那么您使用的是错误的类。要从文件中读取,您需要 std::ifstream ,并按如下方式使用它:

#include <iostream>
#include <fstream>
#include <string>
int main(int argc,char* argv[])
{
    std::string filename = "test.txt";
    std::ifstream file(filename);
    if (file.is_open())
    {
        std::string line;
        while (getline(file, line))
        {
            std::cout << "n" << line;
        }
    }
    else
    {
        // Handling for file not able to be opened
    }
    return 0;
}

输出:

<newline>
test1
test2
test3

现场示例

std::stringstream用于解析字符串,而不是文件。