如何解决ofstream空白文件输出C ++
所以我试图从文本文件中读取一些数据,然后将该数据保存在结构中,然后将该数据输出到另一个具有不同名称的文本文件中。我的问题是输出文件为空,还尝试放置一些 cout 来查看代码是否正常运行,但没有输出到控制台。我认为这与 ofstream 有关,因为当我尝试确定问题时,我删除了与 ofstream 有关的所有行,并将读取的数据输出到控制台,它可以正常工作。我希望以西班牙语编写代码,希望没有问题,这是代码:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdio.h>
#include <string>
using namespace std;
typedef char str20[20];
struct sPaises {
str20 nom,cont;
int hab;
};
bool abrirArchivos(ifstream &archE,sPaises &rPais){
archE >> rPais.nom;
archE >> rPais.cont;
archE >> rPais.hab;
return archE.good();
}
int main(){
sPaises rPaises;
ifstream paisesE("paises.txt");
ofstream lstPaises("ListadoPaises.txt");
while (abrirArchivos(paisesE,rPaises) == 1){
lstPaises << rPaises.nom << rPaises.cont << rPaises.hab << endl;
}
cout << paisesE.good() << endl;
cout << lstPaises.good() << endl;
paisesE.close();
lstPaises.close();
return 0;
}
这是与控制台输出配合使用的代码:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdio.h>
#include <string>
using namespace std;
typedef char str20[21];
struct sPaises {
str20 nom,sPaises &rPais){
archE >> rPais.nom;
archE >> rPais.cont;
archE >> rPais.hab;
return archE.good();
}
int main(){
sPaises rPaises;
ifstream paisesE("paises.txt");
//ofstream lstPaises("ListadoPaises.txt");
while (abrirArchivos(paisesE,rPaises) == 1){
paisesE.clear();
cout << rPaises.nom << rPaises.cont << rPaises.hab << endl;
}
cout << paisesE.good() << endl;
//cout << lstPaises.good() << endl;
paisesE.close();
//lstPaises.close();
return 0;
}
如您所见,它们几乎是相同的,不同之处在于 paisesE.clear(); 行和与ofstream相关的行均已注释。
我尝试输入的文本文件示例:
Alemania Europa 82605000
Argentina América 43823000
Brasil América 207012000
Canadá América 36477000
China Asia 1380996000
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。