我正在学习如何使用c plus plus读/写文件,并遇到了复制txt文件第一行的问题。我粘贴了下面的txt文件。如您所见,第一行有两个字符串,而下面的行有不同的类型。我如何声明第2列的类型,因为它是第1行的字符串,之后是整数?虽然我可以通过将所有内容都声明为字符串来将文件的内容复制到output.txt
,但我很好奇如何处理不同的类型。非常感谢您的帮助。
input.txt
档案:
firstname value
Jack 1
Jacob 3
Jerry 2
Jeremy 3
Joseph 3
Jim 3
我认为因为类型冲突而得到一个空白的output.txt
文件。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string fname;
int value;
using namespace std;
int main() {
ifstream in_file; //variable name
in_file.open("input.txt");
if (in_file.fail()){
cout << " The file is not found " << endl;
return 1;
}
ofstream out_file;
out_file.open("output.txt");
while (in_file >> fname >> value){
out_file << fname << " " << value << endl;
};
}
答案 0 :(得分:0)
谢谢@ForceBru这对我有用,但请告诉我是否有更有效的方法来实现这一目标:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string fname;
string col2;
int lname;
using namespace std;
int main() {
int count=0;
ifstream in_file; //variable name
in_file.open("input.txt");
if (in_file.fail()){
cout << " The file is not found " << endl;
return 1;
}
ofstream out_file;
out_file.open("output.txt");
if (count==0){
in_file >> fname >> col2;
out_file << fname << " " << col2 << endl;
count++;
}
while (in_file >> fname >> lname){
out_file << fname << " " << lname << endl;
};
}