C plus加上不同类型的I / O拷贝txt文件

时间:2017-06-04 15:39:49

标签: c++ types

我正在学习如何使用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;
    };


}

1 个答案:

答案 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;
    };



}