0

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

`#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”<--这是第一个文本文件,它一直到“yob2011.txt”。我想一个一个地输入文本文件,但是结合这三种字符串类型不起作用它给我一个错误,说从 int 到 const char* 的转换无效。

对这个问题有什么想法吗?谢谢!

4

1 回答 1

0

您应该从字符串流中获取它。你快到了,但这是你应该做的:

#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();
}

}
于 2013-04-01T09:02:34.050 回答