【问题标题】:Read & Write File in C++ [closed]用 C++ 读写文件 [关闭]
【发布时间】:2013-05-23 11:06:59
【问题描述】:

我设法写入文本文件,但我的读取文件出了点​​问题。这是我的代码:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    string line, s;
    ofstream out_file;
    out_file.open("hello.txt");
    for(int count = 0; count< 5; count++)
    {
        out_file << "Hello, World" << endl;
    }
    out_file.close();

    ifstream in_file;
    in_file.open("hello.txt");
    if (in_file.fail())
    {
        cout << "File opening error. " << endl;
    }
    else
    {
        while(getline(in_file,line))
        {
            in_file >> s;
            cout << s << endl;
        }
    }
    in_file.close();

    system("Pause");
    return 0;
}

我设法将 5 次“Hello, World”写入文本文件。但是,当程序运行时,它只打印了 4 次“Hello”,第 5 行打印了“World”。从我的代码中,它不应该打印 5 次“Hello, World”吗?谁能指出错误在哪里?

【问题讨论】:

  • in_file &gt;&gt; s; 停在空格处。
  • 那我该如何解决呢?如果我把 getline(in_file,s) 放在那里会出错
  • in_file &gt;&gt; s; 应该是 line &gt;&gt; s; 虽然那样会给你一个不同的错误。

标签: c++ string file-io while-loop


【解决方案1】:
  while(getline(in_file,line))
{
    in_file >> s;
    cout << s << endl;
}

应该是:

while(getline(in_file,line))
{
    cout <<line<< endl;
}

由于您从文件中读取到line,而不是s。所以你应该在line中打印内容。

【讨论】:

  • 哦,好吧。现在已经修好了。非常感谢
  • @Carol 不客气。
【解决方案2】:

您通过 Getline 并使用操作符读取文件>>

你应该试试

while(getline(in_file,line))
{
    cout << line << endl;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多