在一个文件中,我的每一行都有一对名字。像这样:
约翰·戴夫
安托万·格尔达
萨拉数学
等等……
我想做的是将那对输出成一个字符串。像这样:
string pairs[100];
ifstream inFile("duom.txt");
int n; //how many pairs
inFile >> n;
for(int i=1;i<=n;i++){
inFile >> pairs[i];
}
这不起作用,因为它对空间有反应。
getline(inFile,pairs[i]);
Not Acceptable ,因为它会在后面跳过一个代码。
所以我的问题是:是否有可能将这 2 个名称读入一个字符串?
最佳答案
问题不在于 getline,它适合您的任务,而在于索引。你应该从0开始
for(int i=0;i < n;i++){
getline(inFile, pairs[i]);
}
编辑:正如 Kerrek SB 指出的那样,可能存在错误。在 inFile >> n
之后我们应该跳过换行符:添加一个虚拟的 getline(inFile, pairs[0]);
可以去掉它。
关于C++ ifstream 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9656970/