【发布时间】:2015-12-17 05:15:56
【问题描述】:
我必须接受用户输入并将其写入文件,为此我使用fgets() 来防止溢出:
while (fgets( line, sizeof line, stdin) != NULL)
fputs(line, file);
这样做的问题是用户必须在一个空行上输入 CTRL+Z 然后提交它以退出输入,这可能看起来有点混乱。有没有更简单的方法可以退出fgets() 输入?
其他方法呢?如果我逐个符号地读取,我可以实现一个退出字符,但用户不能删除输入,这也很混乱,所以我必须实现一个删除算法,这给代码增加了一点复杂性。
编辑: 用户必须能够在终端中输入 C 代码,并且限制尽可能少。
【问题讨论】:
-
在 Linux 上像 char 一样工作。也许你有一些奇怪的 IDE 或操作系统?而
fgets不允许编辑。stdin是一个字符流! -
这个想法是能够非常轻松地退出输入(可能是特定的退出字符),而我不能用 fgets 做到这一点。