【发布时间】:2018-01-27 21:03:38
【问题描述】:
我想单独读取输入。这意味着我输入一个字符,按回车键,然后要求输入第二个字符。问题是当程序要求我输入它同时要求输入的字符时。
这是我的代码:
#include <stdio.h>
int main(){
printf("Enter a character \n");
char a = 0;
a = getchar();
printf("You entered: %c \n",a);
putchar(a);
printf("\n");
char b[2];
puts(b);
gets(b);
printf("You entered: %c \n",b[0]);
puts(b);
}
【问题讨论】:
-
不要使用
gets,这是等待发生的意外。请改用fgets。 -
关注Why
gets()is so dangerous it should never be used! 上的完整故事的链接 将其与char b[2];一起使用实在是太鲁莽了。 -
1.计算机完全按照您的指示行事。不多也不少。如果您想一次获取一个字符,则必须使用正确的代码来执行此操作。 2.
getchar()只读取一个字符。当用户键入一个字符然后按回车键时,输入中有 两个 字符:您想要的字符加上一个“换行符”字符。您必须使用此换行符才能继续其他输入。 -
注意第一个
puts(b);输出的是不确定的数据;数组b没有初始化,所以你不知道会打印什么。还要注意getchar()返回一个int,而不仅仅是一个char。将值分配给char会导致问题。
标签: c input bufferedinputstream