用c ++命名文件

时间:2018-03-25 15:33:16

标签: c++ file

当我运行此代码时,第二个&第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); 
    }

1 个答案:

答案 0 :(得分:3)

  

第一个角色消失

这是因为你忽略了第

行的第一个字符
cin.ignore();

在用

读取一行文字之前
getline(cin , name);

这两行的顺序错误。相反,他们应该

getline(cin , name);
cin.ignore();

此处cin.ignore()的目的是在您使用getline()读取一行文字后,从输入流中删除换行符。