在C中读取单个字符
我正在尝试从控制台读取一个字符(在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
要只读取一个char,请使用getchar :
int c = getchar(); if (c != EOF) printf("%c\n", c);
在scanf("%c",&in);
您可以在%c
之后添加换行符\n
以吸收额外的字符
scanf("%c\n",&in);
你可以这样做
char *ar; int i=0; char c; while((c=getchar()!=EOF) ar[i++]=c; ar[i]='\0';
通过这种方式,您可以创建一个字符串,但实际上它是一个char数组。