当我运行此代码时,第二个&第3个文件'名字第一个字符消失 例如,如果我将第二个文件命名为set2.txt,那么它将是et2.txt
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream set1,set2,set3;
string name;
cout<<"Enter set1 name: ";
cin.ignore();
getline(cin , name);
set1.open(name,ios::out);
cout<<"Enter set2 name: ";
cin.ignore();
getline(cin , name);
set2.open(name,ios::out);
cout<<"Enter set3 name: ";
cin.ignore();
getline(cin , name);
set3.open(name,ios::out);
}
答案 0 :(得分:3)
第一个角色消失
这是因为你忽略了第
行的第一个字符cin.ignore();
在用
读取一行文字之前getline(cin , name);
这两行的顺序错误。相反,他们应该
getline(cin , name);
cin.ignore();
此处cin.ignore()
的目的是在您使用getline()
读取一行文字后,从输入流中删除换行符。