我正在尝试从控制台读取一个字符(在 while 循环内)。但它不止一次阅读。
输入:
a
输出:
char : a char : char : '
代码:
while(..)
{
char in;
scanf("%c",&in);
}
我怎样才能只读“a”?
scanf("%c",&in);
留下一个换行符,在下一次迭代中使用。
将其更改为:
scanf(" %c",&in); // Notice the whitespace in the format string
它告诉 scanf 忽略空格。
或者
scanf(" %c",&in);
getchar(); // To consume the newline
要仅读取一个字符,请改用getchar:
int c = getchar();
if (c != EOF)
printf("%c\n", c);
在您可以在之后scanf("%c",&in);
添加换行符以吸收多余的字符\n
%c
scanf("%c\n",&in);
你总是可以使用char a = fgetc (stdin);
. 非常规,但就像getchar()
.
你可以这样做。
char *ar;
int i=0;
char c;
while((c=getchar()!=EOF)
ar[i++]=c;
ar[i]='\0';
这样,您创建了一个字符串,但实际上它是一个 char 数组。