结合字符串

时间:2013-04-01 08:56:16

标签: string file-io

我正在尝试将字符串组合到输入文本文件中。我的代码如下所示:

`#include <iostream>
#include <sstream>
#include <fstream>
#include <string>

using namespace std;

int main(){
int year;
string line;
string fileName;

for (int i=1880; i<2012; i++){
    stringstream ss;
    ss << year;


fileName = string("yob") + string(year) + string(".txt");

ifstream ifile(fileName.c_str());
getline(ifile,line);
cout << line << endl;
ifile.close();
}

}`

文本文件看起来像“yob1880.txt”&lt; - 这是第一个文本文件,它一直到“yob2011.txt”。我想逐个输入文本文件,但是将这三种字符串类型组合起来不起作用会给我一个错误,指出从int到const char *的无效转换。

有关这个问题的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

你应该从stringstream获取它。你几乎就在那里,但这是你应该做的事情:

#include <iostream>
#include <sstream>
#include <fstream>
#include <string>

using namespace std;

int main(){
int year;
string line;
string fileName;

for (int i=1880; i<2012; i++){
    year = i; //I'm assuming this is what you meant to use "year" for
    stringstream ss;
    ss << year; //add int to stringstream

string yearString = ss.str(); //get string from stringstream

fileName = string("yob") + yearString + string(".txt");

ifstream ifile(fileName.c_str());
getline(ifile,line);
cout << line << endl;
ifile.close();
}

}