为什么我不能在我的程序中使用 "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)文件的位置。
在下面的程序中,我试图了解如何读写文件。
#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)文件的位置。