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!
}
您混淆了代码中的 fin
和 fout
。
请参阅固定版本 here(注意我只是使用了预定义的字符串而不是用户输入):
fin.open("test.txt");
if(fin.is_open()) {
while(getline(fin,s)) {
cout<<"here";
cout<<s<<endl;
}
fin.close();
}
该程序正在执行,没有给出任何错误。但是 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!
}
您混淆了代码中的 fin
和 fout
。
请参阅固定版本 here(注意我只是使用了预定义的字符串而不是用户输入):
fin.open("test.txt");
if(fin.is_open()) {
while(getline(fin,s)) {
cout<<"here";
cout<<s<<endl;
}
fin.close();
}