gpt4 book ai didi

c - 如何跳出空白输入的循环

转载 作者:行者123 更新时间:2023-11-30 20:04:13 24 4
gpt4 key购买 nike

如果用户只按 Enter 键而不输入任何内容,我如何打破这个 while 循环。

int main()
{
while(1){
int integer;
printf("enter integer:");
scanf("%d",&integer);
}
return 0;
}

最佳答案

你不能。 scanf 是一个可怕的函数,应该避免(特别是,您永远不应该将它用于用户输入)。

让用户输入正常工作的最简单方法是确保所有输入都是通过 fgets (读取整行)。然后,您可以分析该行,将其转换为数字(例如使用 strtolstrtodsscanf 等),或者执行任何操作你想要它。

这是一个例子:

#include <stdio.h>
#include <string.h>

int main(void) {
while (1) {
char buf[200];
int integer;

printf("enter integer: ");
fflush(stdout);
if (!fgets(buf, sizeof buf, stdin)) {
/* input error or end of file reached */
break;
}
buf[strcspn(buf, "\n")] = '\0'; /* remove trailing newline, if any */

if (buf[0] == '\0') {
/* empty line */
break;
}

sscanf(buf, "%d", &integer);
}
return 0;
}

关于c - 如何跳出空白输入的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032130/

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