C++ fstream 无法正常工作

C++ fstream not working properly

该程序正在执行,没有给出任何错误。但是 test.txt 似乎没有写入或读取任何内容。

请帮我找出错误。我觉得我已经正确地实现了 ofstream 和 ifstream。我无法发现我遗漏了什么。

#include <iostream>
#include <fstream>

using namespace std;


int main(int argc, const char * argv[]) {

   ofstream fout;
   ifstream fin;
   string s;
   cout<<"Enter a string: ";
   getline(cin,s);

   fout.open("test.txt");
   if(fout.is_open())
   {
      fout<<s;
      fout.close();
   }
   else
   {
      cout<<"Error ";
   }

   fin.open("test.txt");

   if(fout.is_open())
   {
      while(getline(fin,s))
      {
         cout<<"here";
         cout<<s<<endl;
      }
      fout.close();
   }

   return 0;
}
if(fout.is_open()) { // <<< should be fin
    while(getline(fin,s)) {
        cout<<"here";
        cout<<s<<endl;
    }

    fout.close(); // <<< also fin is needed here!
}

您混淆了代码中的 finfout

请参阅固定版本 here(注意我只是使用了预定义的字符串而不是用户输入):

fin.open("test.txt");
if(fin.is_open()) {
    while(getline(fin,s)) {
        cout<<"here";
        cout<<s<<endl;
    }
    fin.close();
}