C++ C++;ifstream字符串

C++ C++;ifstream字符串,c++,string,fstream,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]; } 约翰·戴夫 安托万·格尔达 莎拉数学 等等 我想做的是将这一对输出为一个字符串。像这样: string pairs[100]; ifstream inFil

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

string pairs[100];
ifstream inFile("duom.txt");
int n; //how many pairs

inFile >> n;
for(int i=1;i<=n;i++){
    inFile >> pairs[i];
}
约翰·戴夫

安托万·格尔达

莎拉数学

等等

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

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,这对您的任务很好,而在于索引。你应该从0开始

for(int i=0;i < n;i++){
    getline(inFile, pairs[i]);
}
for(int i=0;i

编辑:正如Kerrek SB所指出的,可能存在错误。在
infle>>n
之后,我们应该跳过换行:添加一个伪
getline(infle,pairs[0])
可以摆脱它。

问题不在于getline,它对您的任务很好,而在于索引。你应该从0开始

for(int i=0;i < n;i++){
    getline(inFile, pairs[i]);
}
for(int i=0;i

编辑:正如Kerrek SB所指出的,可能存在错误。在
infle>>n
之后,我们应该跳过换行:添加一个伪
getline(infle,pairs[0])
可以摆脱它。

但是,在混合
getline
>
时,你必须小心。但是,在混合
getline
>
时,你必须小心。可能的重复