gpt4 book ai didi

c - 空字符串结束循环

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:29 24 4
gpt4 key购买 nike

下面的程序有什么问题(这里发生了什么)?它应该在用户插入空字符串(仅按 ENTER)后打破 for 循环,但在我的例子中,它以无休止的 for 循环结束。我尝试了评论中的内容,但没有成功。

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

struct S {
char str [10];
};

int main(void)
{
int n;
struct S strings [10];
for (n = 0; n < 10; n++) {
# fflush(stdout);
scanf("%s", strings[n].str);
if (strlen(strings[n].str) == 0)
break;
# getchar();
}
printf("done");
return 0;
}

当我将 scanf 替换为 gets(strings[n].str); 时,永远不会打印 done。你会如何解决它?

This示例解决方案有效。与我的代码相比有什么不同吗?

最佳答案

回车键不是空字符串,它是一个 ascii 字符或者更确切地说是两个字符 CR 和 LF(在 Windows 上)。

关于c - 空字符串结束循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797168/

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