C++ ifstream 字符串

标签 c++ string fstream ifstream

在一个文件中,我的每一行都有一对名字。像这样:

约翰·戴夫

安托万·格尔达

萨拉数学

等等……

我想做的是将那对输出成一个字符串。像这样:

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/

相关文章:

c++ - JSONCPP 正在向字符串添加额外的双引号

c - 寻找最小和最大单词的程序

c++ - 将 vector 拆分为两个较小数组的最佳方法?

java - C++ getline() 比 Java 的 readLine() 慢

c++ - 静态链接 SSL 与 Poco

c++ - 如何在 Qt 中将 base64 字符串保存为 png 图像?

c++ - Win32 C++ 可以通过过程发送额外信息

asp.net - 是否可以添加一个 String.contains 多个值?

c++ - 使用 gluPerspective()

c++ - 读取二进制文件时出现段错误