gpt4 book ai didi

c - 当用户按回车键时结束 while 循环,不能使用 #include

转载 作者:行者123 更新时间:2023-11-30 21:08:07 25 4
gpt4 key购买 nike

在此场景中,用户输入是使用 fgets 从 stdin 获取的。通常,当用户按下 Enter 时结束 while 循环,我会在 fgets 值和\n 之间使用 strcmp,但我们不允许使用 #include <string.h>在这个特定的任务中。使用C99。

最佳答案

不能,因为 fgets() 函数在找到 \n

时返回

我假设您的意思是当用户输入一个 \n 而没有输入其他内容时。使用 fgetc() 可能是一个更好的主意,它将返回 \n

这意味着您需要自己缓冲输入输出,如下所示:

char    inputBuffer[120] = "";

char ch;
char chCount = 0;

while (1) {
ch = fgetc(stdin);

if (ch == '\n') {
/* Empty buffer? */
if (inputBuffer[0] == '\0')
/* Oui! */
break;

/* Buffer isn't empty - do something with it... */
fprintf(stdout, "Input buffer: %s\n", inputBuffer);

/* Clear the buffer for the next line of input and reset the
* counter. */
inputBuffer[0] = '\0';
chCount = 0;
}
else {
if (chCount < 119) {
/* Add the byte to the buffer. */
inputBuffer[chCount++] = ch;
inputBuffer[chCount] = '\0';
}
}

}

如果输入单个 \n,上面的循环将输出任何输入字符串或中断。

关于c - 当用户按回车键时结束 while 循环,不能使用 #include <string.h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40229877/

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