gpt4 book ai didi

c - 为什么 fgets 正在读取输入,即使输入字符串中有 EOF?

转载 作者:行者123 更新时间:2023-11-30 14:35:54 27 4
gpt4 key购买 nike

我阅读了 fgets()man 页面。它指出“读取在 EOF 或换行符后停止”。我的代码如下。

#include <stdio.h> 
#define MAX 50
int main()
{
char buf[MAX];
fgets(buf, MAX, stdin);
printf("string is: %s\n", buf);

return 0;
}

我给出了这个输入:欢迎来到-1 kkWorld。
输出为:字符串为:Welcome to -1 kkWorld
当 fgets 在输入中看到 -1 时,它应该停止读取。为什么即使字符串中有 -1 或 EOF,fgets 仍会读取?我在这里错过了什么吗?请帮忙。

最佳答案

正如Adrian所说,输入“-1”最终会变成两个字符; “-”和“1”。要模拟 EOF 字符,您必须输入单个 EOF 值常量。

EOF 可以通过 Ctrl-D (Unix/Linux) 或 CTRL-Z (Microsoft) 输入到程序中。

关于c - 为什么 fgets 正在读取输入,即使输入字符串中有 EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58280285/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com