C ascii转换器printf额外整数



尝试创建一个简单的C字符到ASCII转换器

但是结果打印出";10〃;在每次打印f之后。

有什么解决办法吗?

编译器:mingw64/gcc

来源:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
char argc;
printf("Enter for ASCII: ");
do {
scanf("%c", &argc);
printf("%dn", argc);
} while (argc != 'Z');
}

输出:

$ ./ascii.exe 
Enter for ASCII: A 
65
10
S
83
10
D
68
10
V
86
10
X
88
10
Z
90
格式字符串为"%c"

scanf读取包括空白字符在内的所有字符,例如与按下的Enter键对应的换行符'n'。要跳过空白字符,您可以在格式字符串前面加上类似的空格

scanf( " %c", &argc);
^^^^^

C标准7.21.6.2 fscanf函数

5由空格字符组成的指令由读取输入直到第一个非空白字符(保留未读(,或者直到无法读取更多字符为止。

或者您可以通过以下方式在循环中忽略它

do {
scanf("%c", &argc);
if ( argc != 'n' ) printf("%dn", argc);
} while (argc != 'Z');

相关内容

  • 没有找到相关文章