我正在尝试将字符串组合到输入文本文件中。我的代码如下所示:
`#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 *的无效转换。
有关这个问题的任何想法?谢谢!
答案 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();
}
}