C 程序将用户输入转换为整数,然后将整数转换为(HEX、Bin、Alpha)的问题
issues with C Program to convert user input to Integer and then Integer to (HEX, Bin, Alpha)
#include <stdio.h>
#include <stdlib.h>
int main(void) {
/*holds the number to be converted between methods.*/
char convNumber;
/*storageInt */
int storageInt;
puts("put text in here to convert to bin");
while ((convNumber = getchar()) != '$') {
storageInt = storageInt * 100 + convNumber;
}
printf("%d", &storageInt);
return 0;
}
好的,上面是给我带来问题的代码。我是 C 的新手,这是一个学校项目。
问题:
我如何将带有定界字符“$”的用户输入转换为我可以存储和打印或用于转换为十六进制或二进制的整数。页面底部是我的输出最终应该是什么样子的完整视图,以了解所需的输入类型。
背景和任务信息:
尝试将用户输入打印为整数时,我总是收到意外输出。我的目标是拥有 2 个整数块,代表 ASCII,顺序从 0 到 N(N 是用户输入的结尾)。通过键入 $ 将用户输入指定为已完成。我做错了什么?
当通过程序选择 "A"、"A",然后最后选择 "A$"($ 用于终止程序)时,我得到 2337412 而不是 [= 的预期 65 ascii 29=]。
所以请帮助我理解这一点,以便我在后续作业中做得更好(寻找解释)。提前致谢!
最终结果:
Welcome to the Coder!
Choose Input (H,A,B,Q): A
Choose Output(H,A,B): H
Enter your alpha input.
Hi! Bye! $
486921204279652120
Choose Input (H,A,B,Q): H
Choose Output(H,A,B): B
Enter your hex input.
486921204279652120$
010010000110100100100001001000000100001001111001011001010010000100100000
Choose Input (H,A,B,Q): B
Choose Output(H,A,B): A
Enter your bin input.
您正在打印 storageInt
的内存地址。您仅在 scanf 中使用内存地址,原因在您了解更多后会发现显而易见。字符串是个例外,但这不是字符串。
这样做:
printf("%d", storageInt);
#include <stdio.h>
#include <stdlib.h>
int main(void) {
/*holds the number to be converted between methods.*/
char convNumber;
/*storageInt */
int storageInt;
puts("put text in here to convert to bin");
while ((convNumber = getchar()) != '$') {
storageInt = storageInt * 100 + convNumber;
}
printf("%d", &storageInt);
return 0;
}
好的,上面是给我带来问题的代码。我是 C 的新手,这是一个学校项目。
问题: 我如何将带有定界字符“$”的用户输入转换为我可以存储和打印或用于转换为十六进制或二进制的整数。页面底部是我的输出最终应该是什么样子的完整视图,以了解所需的输入类型。
背景和任务信息:
尝试将用户输入打印为整数时,我总是收到意外输出。我的目标是拥有 2 个整数块,代表 ASCII,顺序从 0 到 N(N 是用户输入的结尾)。通过键入 $ 将用户输入指定为已完成。我做错了什么?
当通过程序选择 "A"、"A",然后最后选择 "A$"($ 用于终止程序)时,我得到 2337412 而不是 [= 的预期 65 ascii 29=]。
所以请帮助我理解这一点,以便我在后续作业中做得更好(寻找解释)。提前致谢!
最终结果:
Welcome to the Coder!
Choose Input (H,A,B,Q): A
Choose Output(H,A,B): H
Enter your alpha input.
Hi! Bye! $
486921204279652120
Choose Input (H,A,B,Q): H
Choose Output(H,A,B): B
Enter your hex input.
486921204279652120$
010010000110100100100001001000000100001001111001011001010010000100100000
Choose Input (H,A,B,Q): B
Choose Output(H,A,B): A
Enter your bin input.
您正在打印 storageInt
的内存地址。您仅在 scanf 中使用内存地址,原因在您了解更多后会发现显而易见。字符串是个例外,但这不是字符串。
这样做:
printf("%d", storageInt);