在C ++中读取包含混合数据的文本文件

时间:2016-05-14 06:33:57

标签: c++ file

假设我有一个包含以下文本数据的文本文件: enter image description here

我正在用c ++中读取这个文件,

ifstream file("book_inventory.txt");
    string content;
        int i=0;
    while(file >> content) {
cout << content << ' ';
}

但它在一行显示所有输出而不显示任何新行。

2 个答案:

答案 0 :(得分:2)

使用例如读取整行std::getline然后使用std::istringstream首先解析出这三个数字。然后它变得有点困难。如果名称(例如&#34; James Pilgrim&#34;)总是两个&#34;单词&#34;然后你可以使用普通输入操作符>>来获取名称,然后再使用std::getline来获取最后一部分。

如果名称可以是一个,两个或更多单词,那么实际上不可能说出人名何时结束且标题开始。

另一方面,如果您不想实际解析内容,只打印线条,则只需使用std::getline逐行阅读,并记住打印换行符。

答案 1 :(得分:1)

  

您可以尝试使用以下代码按原样逐行读取文件,或者在代码中使用endl而不是''

ifstream myfile("book_inventory.txt");
string line;
if (myfile.is_open())
{
    while (getline(myfile, line))
    {
        cout << line << '\n';
    }
    myfile.close();
}