我正在学习C,我创建了一个小程序,它输出输入字符的ASCII代码或从输入的ASCII代码输出字符。它首先询问用户是要将字符转换为ASCII代码还是将ASCII代码转换为字符。
我不知道我的代码有什么问题。当我将它作为一个单独的文件运行时,它可以正常工作。
# include <stdio.h>
int main(void) {
char character;
printf("Enter a character: \n");
scanf("%c", &character);
printf("The character you entered: %c\n", character);
printf("ASCII code of %c is %d\n", character, character);
}
以上代码运行良好。这是将字符转换为ASCII代码的代码。
下面的代码可以选择运行哪个代码:
#include <stdio.h>
int main(void) {
char option;
printf("-------- MENU --------\n");
printf("1. Get ASCII code of a character.\n");
printf("2. Get character from ASCII code.\n");
printf(": ");
scanf("%s", &option);
if (option == '1') {
char character;
printf("Enter a character: \n");
scanf("%c", &character);
printf("The character you entered: %c\n", character);
printf("ASCII code of %c is %d\n", character, character);
}
else {
if (option == '2') {
int number;
printf("Enter a Number: \n");
scanf("%d", &number);
printf("The number you entered: %d\n\n", number);
printf("The ASCII character with code %d is %c\n", number, number);
}
else {
printf("Invalid Input !\n");
}
}
}
上述代码要求用户输入1或2以决定将字符转换为ASCII代码或将ASCII代码转换为字符。当我运行这段代码时,如果我选择了选项2,它就可以正常工作,并给出一个正确的结果;如果我给出了3或任何其他无效选项,它就会给我“无效输入!”印在屏幕上。但是,当我选择选项1时,它只会打印出以下内容
-------- MENU --------
1. Get ASCII code of a character.
2. Get character from ASCII code.
: 1
Enter a character:
The character you entered:
ASCII code of
is 10
我不知道问题出在哪里。请帮我弄清楚。
发布于 2021-06-23 10:01:28
问题是第二个scanf
和%c
。您必须添加一个类似于这个scanf(" %c")
的空白。
完整代码:
#include <stdio.h>
int main(void) {
char option;
printf("-------- MENU --------\n");
printf("1. Get ASCII code of a character.\n");
printf("2. Get character from ASCII code.\n");
printf(": ");
scanf("%s", &option);
if (option == '1') {
char character;
printf("Enter a character: \n");
scanf(" %c", &character);
printf("The character you entered: %c\n", character);
printf("ASCII code of %c is %d\n", character, character);
}
else {
if (option == '2') {
int number;
printf("Enter a Number: \n");
scanf("%d", &number);
printf("The number you entered: %d\n\n", number);
printf("The ASCII character with code %d is %c\n", number, number);
}
else {
printf("Invalid Input !\n");
}
}
}
输出:
-------- MENU --------
1. Get ASCII code of a character.
2. Get character from ASCII code.
: 1
Enter a character:
a
The character you entered: a
ASCII code of a is 97
请看下面的question被解释的原因。
https://stackoverflow.com/questions/68097517
复制相似问题