我正在尝试修改一些Ritchie和Kernighan的代码,但这个代码似乎没有返回预期:
字符1 人物2 角色3
...而是有些奇怪:
字符1 2 人物3 4
#include <stdio.h>
main()
{
char cadena[10], cadinver[10], c;
int lim,i;
lim=10;
i=0;
for (i=0;(i<lim) && ((c=getchar())!=EOF);++i){
cadena[i]=c;
printf("%c %d",c,i);
}
printf("%s",cadena);
system("pause");
return 0;
}
我认为错误很简单,但我没有做到......
非常感谢! :)
答案 0 :(得分:2)
这有点棘手,但这就是我认为正在发生的事情。 当你用键盘2写字,然后按回车键,你是什么 实际上“给”你的程序是'2''\ n',这是2个字符。所以 你的第一个getchar()得到数字2而另一个获得'\ n' 字符。
尝试像这样修改你的for循环体:
cadena[i]=c;
printf("%c %d",c,i);
getchar();
答案 1 :(得分:1)
我没有c的环境,但是:
确定 - 已更正