为什么我无法使用" file_ptr>>变量"从文件中读取文件在我的程序?

时间:2016-03-07 04:31:29

标签: c++ file c++11 fstream flush

在以下程序中,我试图了解如何读取和写入文件。

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    fstream myfile;
    string str1;
    myfile.open("H:/input_file.txt");
    if(myfile.is_open())
    {   
    myfile<<"test1 writing files"<<" ";
    myfile>>str1;
    cout<<str1<<endl;
    }
    return 0;
}

为什么我不能在控制台上获得任何输出,即使&#34; test1正在编写文件&#34;被写入文件?

1 个答案:

答案 0 :(得分:1)

需要为读取和写入打开文件(对不起,请忽略它;默认情况下,fstream会为read&amp; write打开)。在写完(并刷新输出)之后,你需要seekg()回到文件的开头,或者你只是想读一下你写的最后一件事之后会发生什么,这当然不算什么。

myfile<<"test1 writing files"<<" ";
myfile.flush(); 
myfile.seekg(0, ios_base::beg);
myfile>>str1;

seekg用于更改您从文件中读取(获取)的位置。 seekp用于将您编写(放置)的位置更改为文件。