Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序将用户输入转换为整数,然后再将整数转换为(十六进制、二进制、Alpha)的问题 #包括 #包括 内部主(空){ /*保存要在方法之间转换的数字*/ 字符数; /*storageInt*/ int-storageInt; puts(“将文本放入此处以转换为bin”); 而((convNumber=getchar())!=“$”){ storageInt=storageInt*100+convNumber; } printf(“%d”、&storageInt); 返回0; }_C_Integer_Hex_Ascii_Scanf - Fatal编程技术网

C程序将用户输入转换为整数,然后再将整数转换为(十六进制、二进制、Alpha)的问题 #包括 #包括 内部主(空){ /*保存要在方法之间转换的数字*/ 字符数; /*storageInt*/ int-storageInt; puts(“将文本放入此处以转换为bin”); 而((convNumber=getchar())!=“$”){ storageInt=storageInt*100+convNumber; } printf(“%d”、&storageInt); 返回0; }

C程序将用户输入转换为整数,然后再将整数转换为(十六进制、二进制、Alpha)的问题 #包括 #包括 内部主(空){ /*保存要在方法之间转换的数字*/ 字符数; /*storageInt*/ int-storageInt; puts(“将文本放入此处以转换为bin”); 而((convNumber=getchar())!=“$”){ storageInt=storageInt*100+convNumber; } printf(“%d”、&storageInt); 返回0; },c,integer,hex,ascii,scanf,C,Integer,Hex,Ascii,Scanf,好的,上面是给我带来问题的代码。我是C的新手,这是一个学校项目 问题: 如何将带有定界字符“$”的用户输入转换为一个整数,可以存储和打印该整数,也可以将其转换为十六进制或二进制。在页面底部是我的输出最终应该是什么样子的完整视图,以提供所需输入类型的概念 背景和任务信息: 在尝试将用户输入打印为整数时,我不断得到意外的输出。我的目标是有2个整数块,代表ASCII,顺序从0到N(N是用户输入的结尾)。通过键入$将用户输入指定为已完成。我做错了什么 当通过程序选择“A”、“A”,然后最后选择“A$”(

好的,上面是给我带来问题的代码。我是C的新手,这是一个学校项目

问题: 如何将带有定界字符“$”的用户输入转换为一个整数,可以存储和打印该整数,也可以将其转换为十六进制或二进制。在页面底部是我的输出最终应该是什么样子的完整视图,以提供所需输入类型的概念

背景和任务信息:

在尝试将用户输入打印为整数时,我不断得到意外的输出。我的目标是有2个整数块,代表ASCII,顺序从0到N(N是用户输入的结尾)。通过键入$将用户输入指定为已完成。我做错了什么

当通过程序选择“A”、“A”,然后最后选择“A$”($用于终止程序)时,我得到的是2337412,而不是预期的“A”的65 ascii

因此,请帮助我理解这一点,以便我在以后的作业中做得更好(寻找解释)。提前谢谢

最终结果:

欢迎来到编码器
选择输入(H、A、B、Q):A
选择输出(H,A,B):H
输入字母输入。
你好再见$
486921204279652120
选择输入(H、A、B、Q):H
选择输出(H、A、B):B
输入十六进制输入。
486921204279652120美元
0100100001010010010000100011000000000010000010011111001011001001100101001000010001100000
选择输入(H、A、B、Q):B
选择输出(H、A、B):A
输入您的bin输入。


您正在打印storageInt的内存地址。您仅在scanf中使用内存地址,原因在您了解更多信息后会很明显。字符串是例外,但这不是字符串

这样做:

#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;
}

“我将对此进行修订以防止复制和粘贴。”-不允许您这样做。因此,它意味着一个Q&a的存储库,将帮助人们解决同样的问题。如果您不希望此内容公开,请不要发布。(所有帖子都有完整的、公开的、编辑的历史记录,所以“编辑”是完全没有用的。)并不是我不想让它公开,我打算编辑它以防止下一节课作弊。如果我不能做出改变,那就是事实。无论如何,这并不能改变我被困住了,需要一些帮助才能继续前进的事实。如果你想帮助我,我将非常感谢你的建议和指点。如果你想在这里得到帮助,你应该先缩小你的问题范围。您发布的所有关于输入/输出选择的代码都是无关的。把它全部去掉,保留最小的核心(读文本,转换成数字),并准确地描述它到底出了什么问题。应该是大约10-15行代码和那么多描述。确保生成的代码片段没有任何警告,包括当您包含优化时(
-Wall-Wextra-Werror-O2
作为gcc或clang的最低要求)。我将减少它。目前我没有任何警告。我将要更新的直接问题是,如何将带有定界字符“$”的用户输入转换为整数,我可以存储和打印该整数,或者使用该整数转换为十六进制或二进制。你有什么方向或什么我需要特别注意的吗?我会试试,然后再报告。顺便说一句,您实际上什么时候初始化storageInt?它的起始值可以是任意值。您应该在声明中将其设置为正确的值。我已经修复了storageInt的初始化和printF调用。它现在创造了更一致的东西。
printf("%d", storageInt);