gpt4 book ai didi

c - 使用 scanf 扫描一行带空格的字符串

转载 作者:行者123 更新时间:2023-11-30 14:59:43 26 4
gpt4 key购买 nike

我在 C 中使用 scanf 进行所有输入。现在我看到了有关 scanf() 的其他类似问题。他们建议使用 fgets()而不是scanf() 。以后我也会这样做。然而,目前代码的这个特定部分带有 scanf()似乎从来没有起作用。我知道有一个解决方案。

我的代码是:

#define LENGTH 1000
#define WORD 100
int main(){
int i = 0;
char s[WORD][LENGTH];
do {
scanf("%s", s[i]);
i++;
}
while (s[i][strlen(s[i])] != EOF);
printf("%s\n", s);

return 0;
}

应该有一些东西而不是 EOF在检查行尾的 while 循环中。最终结果应该是 s[] 中的单词数组并且程序应该打印不带空格的单词数组。

最佳答案

不幸的是,scanf() 不会读取您需要检查行尾的字符,或者至少不会使用 "%s" 作为说明符。

相反,请使用以下内容

char line[100];
if (scanf("%99[^\n]", line) == 1) {
fprintf(stdout, "%s\n", line);
}

这样,它不会在空白字符处停止,其行为类似于 fgets(),只不过它不读取 '\n' 字符如果您再次调用它,可能会出现问题。

关于c - 使用 scanf 扫描一行带空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42595386/

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