制作文本文件,逐字符串键入

时间:2019-04-12 15:19:17

标签: c++ file

我想制作文本文件,逐个字符串地填充他,直到空字符串为止。但是,以某种方式我有无限的输入,我需要做出什么构想才能摆脱无限循环?

这是我的代码:

  fstream f;
f.open("text1.txt", ios::out);
bool flag = false;
while (!flag) {
    char buf[50];
    cin >> buf;
    if (strlen(buf)!=0 )
        f<<buf<<endl;
    else {
        f.close();
        flag = true;
    }
}

2 个答案:

答案 0 :(得分:2)

使用cin >> buf,您一次读一个单词。改用std::getline更容易:

fstream f;
f.open("text1.txt", ios::out);
bool flag = false;
while (!flag) {
    string str;
    getline(cin, str);
    if (cin && !str.empty())
        f<<str<<endl;
    else {
        f.close();
        flag = true;
    }
}

如果您被迫使用固定缓冲区,则需要搜索数据中\n\n的出现。 \n是C ++中的换行符号。

答案 1 :(得分:0)

您需要迭代 while 循环,直到文件结尾。

const