【问题标题】:Unable to use files to store and read input data无法使用文件存储和读取输入数据
【发布时间】:2021-03-26 12:00:51
【问题描述】:

我想使用存储输入数据并从文件 input.txt 读取数据的文件编写代码。我正在编写这段代码来解析输入数据。代码运行良好,没有出现错误,但是当我查看文件 input.txt 时,它没有显示我输入的数据。请帮忙。


#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main() 
{
    string str;
    ofstream out("input.txt");
    getline(cin,str);
    out<<str;
    ifstream in("input.txt");
    getline(in,str);
    cout<<str;
}

我刚刚意识到我的计算机有问题,因为我在另一台计算机上尝试了相同的代码并且它可以工作

【问题讨论】:

  • "代码运行良好,没有出现错误" 但是您没有检查任何故障:所以,当然,它没有显示任何错误。例如:你没有检查是否有文件打开成功,或者getline是否成功。
  • 您应该先关闭文件流,然后再重新打开它以供阅读。在您创建 ifstream 之前,在您的流周围放置一些花括号或调用 out.close()
  • 您有两个流——一个输入和一个输出——同时打开。让生活更简单。在打开输入流之前关闭输出流。
  • @Timo @R Sahu 我确实关闭了 ofstream 但输入没有保存在 input.txt 中
  • @tadman 哦,我不知道。感谢您提供信息。

标签: c++ logic


【解决方案1】:

更新您的函数,使其行为清晰易懂。将其更改为:

int main() 
{
    string str;
 
   {
       // Open and close the output stream in this block.
       ofstream out("input.txt");
       getline(cin,str);
       out<<str;
    }

    {
       // Mot necessary to have this block but it is symmetric.
       // Open and close the input stream in this block.
       ifstream in("input.txt");
       getline(in,str);
       cout<<str;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2015-09-02
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多