Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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
ASCII值显示为0_C - Fatal编程技术网

ASCII值显示为0

ASCII值显示为0,c,C,这是一个程序,用于打印连续输入的字符的ascii值,直到按下enter键,但该值显示为0。它如何修复它 void main(){ int i,d; char c; for(;;){ //for infinite loop printf("Character: "); getche(c); if(c==13){ printf("You pressed enter exiting program"); break; } pri

这是一个程序,用于打印连续输入的字符的ascii值,直到按下enter键,但该值显示为0。它如何修复它

void main(){
int i,d;
char c;
for(;;){  //for infinite loop
    printf("Character: ");
    getche(c);
    if(c==13){
        printf("You pressed enter exiting program");
        break;
    }
    printf("\tASCII value %d  \n",c);
}
}


您没有正确使用
getche()
函数

void main(){
int i,d;
字符c;
对于(;){//对于无限循环
printf(“字符:”);
c=getche();
如果(c==13){
printf(“您按下了进入退出程序”);
打破
}
printf(“\tASCII值%d\n”,c);
}
}

getche()。您需要返回并了解C函数返回值是什么。请参阅…并且“someFunc(someType wotsit)”不能更改/加载/变异参数“wotsit”。许多初学者的帖子,尤其是链表和scanf的帖子,根本就没有意识到这一基本事实:(@MartinJames反例:
typedefint-someType[42];void-sometfunc(someType-wotsit){wotsit[2]=7;}include-int-main(){someType-wotsit={1,2,3};printf(%d\n),wotsit[2]);sometfunc(wotsit);printf(“%d\n”,wotsit[2]);}
。很容易忘记,作为对函数的扩充的数组会转换为允许修改数组的第一个元素的指针。@chux,嗯,有点..指针没有被修改,数组本身没有按值传递,但我接受你的评论..这是真的,祝你好运,顺风顺水,祝你好运我方:)
getche()
返回
int
,而不是
char
。您在这里不会有问题,因为您没有针对
EOF
进行测试,但是如果您将返回值填充到
char
而不是
int
,那么与
EOF
的比较可能是不正确的。感谢您指出@AndrewHenle。我只是证明了我认为问题范围的解决方案是错的。即使在问题范围内,如果用户输入了代码为-1的字符(或任何等于EOF值的值),那么即使没有按enter键,也不会工作并提前退出