fputs()之后的第二个fgets()不等待输入

时间:2014-03-27 17:22:52

标签: c++ c++-standard-library

为什么fputs()之后的fgets()不等待以下c ++代码中的输入?

int main(int argc, char ** argv) {
    const char * fileName = "test.txt";
    const int maxStringSize = 1000;
    FILE * file = fopen(fileName, "W");
    char s[maxStringSize];
    fgets(s, maxStringSize, stdin);
    fputs(s,file);
    fgets(s, maxStringSize, stdin);
    fclose(file);
    return 0;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你列出的内容对我来说没问题,但有几件事要检查......

如果出现以下情况,第二个fgets调用将立即返回:

  1. 到达输入的结尾(例如,stdin来自只有一行的文件)。
  2. 第一行输入(计算换行符)超过999个字符。