c - 用户输入循环

标签 c input stdin fgets

我想编写一个程序,不断询问用户输入,直到我使用 ctrl+D 中断它。这是我的:

char input[100];
while(input != EOF){
       printf("Give me a sentence:\n");
       fgets(input, 5, stdin);
       printf("your sentence was: %s\n", input);
}

我希望 fgets 从新输入的前 5 个字符开始,而不是像上次输入的第 6 个字符那样循环,而且我也不知道如何写 while to break 的条件通过ctrl+D出来。现在你可以看到输入(这是一个 char[] 正在与 EOF 进行比较)。

感谢您的任何建议。

最佳答案

我认为您正在寻找函数 feof。

char input[100];
while(!feof(stdin)){
       printf("Give me a sentence:\n");
       fgets(input, 5, stdin);
       printf("your sentence was: %s\n", input);
}

关于c - 用户输入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942503/

相关文章:

c - 在此信号处理程序中会发生什么?

C 代码删除文件中的 ^M/Windows 最后一个字符?

c++ - 读入不同类型的行

python - 使用 python 列表作为使用 stdin 作为输入的 linux 命令的输入

c - Win32 WriteFile 返回 0 字节作为写入的字节数。 lpBuffer 包含 4455 字节

c - 如何在C中将数据写入二进制文件

javascript - 如何删除用户使用 JavaScript 输入的文本输入

javascript - 处理来自控制台的nodeJs输入?

c - Valgrind 报告从 stdin 获取 getline 后释放指针的内存泄漏

c - 多次使用标准输入