为什么我不能在我的程序中使用 "file_ptr>>variable" 从文件中读取?

Why I can't read from file using "file_ptr>>variable" in my program?

在下面的程序中,我试图了解如何读写文件。

#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;
}

即使 "test1 writing files" 已写入文件,为什么我在控制台上没有任何输出?

文件需要以读写方式打开(对不起,忽略它;默认情况下,fstream 以读写方式打开)。写入(并刷新输出)后,您将需要 seekg() 回到文件的开头,否则您将只是试图读取您最后写入的内容之后的内容,这当然什么也不是。

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

seekg用于改变你从文件中读取(获取)的位置。 seekp用于改变你写入(put)文件的位置。