【发布时间】:2021-01-04 18:35:36
【问题描述】:
我正在尝试读取字符数,包括空格。 我使用 scanf 函数使用 %c 检查字符。另外,我将如何将输入存储到数组中?
#include <stdio.h>
int main(void) {
char n, count= 0;
while (scanf("%c", &n) != EOF) {
count = count+1;
}
printf("%d characters in your input \n", count);
return 0;
}
当我测试输入(带空格)时,例如 abcdefg 它不打印任何东西。
【问题讨论】:
-
scanf对于这项任务来说是不必要的繁重,n=getc(stdin)就足够了。好吧,您可以通过将它们写入足够长的数组来存储它们。 -
@Fread,你如何结束你的输入,用换行、文件结束信号或什么?
-
尝试在循环中添加
printf("%d\n", n);以获取更多信息。 -
我用 Ctrl-D 结束输入。添加 printf("%c\n", n);打印每个字符(我将格式说明符更改为 c)当我输入苹果时,它打印苹果,每个字符在自己的行上
-
您需要按两次
Ctrl+d。一次表示您已完成输入(返回最后一个字符,然后scanf()阻止等待下一个字符),然后在下一个Ctrl+d按键时返回EOF,因为在输入结束之前没有读取任何字符已生成。
标签: arrays c input char character