使用 int 时程序 运行 很好,但是当我使用 char 时它开始跳行
Program is running well when use int but when I use char it starts skipping line
我是 c 编码的新手,我的程序在使用 int
数据类型时 运行 很好,但是当我使用 char
时它开始跳行。
#include <stdio.h>
int main() {
int i;
char k[10];
for (i = 0; i < 10; i++) {
printf("enter your character for line %d: \n", i);
scanf("%c", &k[i]);
}
for (i = 0; i < 10; i++) {
printf("your character for line %d are %c \n", i, k[i]);
}
return 0;
}
好吧,当您按下 Enter 时,您正在将 'new line' 个字符写入程序的输入。
因为它是字符,%c
正在阅读它。
说明符 %c
不像其他说明符那样消耗 spaces,因此您必须通过添加 [=] 明确告诉 scanf
跳过白色 spaces 29=] 在 %c
之前,所以你的格式是 " %c"
。
更多细节可能在这里:
编辑: 请注意,这样您无法阅读 space 或用户输入的标签。
我是 c 编码的新手,我的程序在使用 int
数据类型时 运行 很好,但是当我使用 char
时它开始跳行。
#include <stdio.h>
int main() {
int i;
char k[10];
for (i = 0; i < 10; i++) {
printf("enter your character for line %d: \n", i);
scanf("%c", &k[i]);
}
for (i = 0; i < 10; i++) {
printf("your character for line %d are %c \n", i, k[i]);
}
return 0;
}
好吧,当您按下 Enter 时,您正在将 'new line' 个字符写入程序的输入。
因为它是字符,%c
正在阅读它。
说明符 %c
不像其他说明符那样消耗 spaces,因此您必须通过添加 [=] 明确告诉 scanf
跳过白色 spaces 29=] 在 %c
之前,所以你的格式是 " %c"
。
更多细节可能在这里:
编辑: 请注意,这样您无法阅读 space 或用户输入的标签。