gpt4 book ai didi

c - 如何获取输入直到输入 "only"换行符或空格?基本上如何运行循环直到您不输入任何内容作为输入?

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

我正在尝试创建一个循环,它会一直循环直到“仅”输入换行符或可能只是一个空格(直到输入行中没有输入任何内容)。

 #include <stdio.h>
#include <stdlib.h>

int main()
{
int num;
while(1)
{
scanf("%d",&num);
if(num==NULL)
break;
printf("%d",num);
}
return 0;
}

最佳答案

你不能用 scanf 做到这一点(至少不容易)。如果你想处理用户输入,scanf是一个糟糕的选择(事实上,在我用C开发的所有这些年里,我从未使用过scanf;我推荐你完全避免它)。

num==NULL 没有意义:num 是一个数字,但 NULL 是一个指针值。如果你想检查scanf是否成功,你需要检查它的返回值。

我会做这样的事情:

char line[100];
while (fgets(line, sizeof line, stdin)) { // read input line by line
int num;
if (sscanf(line, "%d", &num) != 1) { // the line didn't start with a valid integer
break;
}
printf("%d\n", num);
}

如果您想专门检查空字符串,而不仅仅是看起来不像数字的字符串,则可以使用 strspn :

if (line[strspn(line, " \t\n")] == '\0') {
// line contains spaces / tabs / newlines only

关于c - 如何获取输入直到输入 "only"换行符或空格?基本上如何运行循环直到您不输入任何内容作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864978/

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