C语言输入输出的问题
遇到下面一个程序
#include <stdio.h>
void main(void)
{
int i;
char c;
for(i=0;i<5;i++)
{
scanf("%c",&c);
printf("c=%c,\n",c);
printf("i=%d,\n",i);
}
getchar();
exit(0);
}
我分别键入: x+enter y+enter z+enter
结果:
x
c=x,
i=0,
c=
,
i=1,
y
c=y,
i=2,
c=
,
i=3,
z
c=z,
i=4,
如果稍微修改下
#include <stdio.h>
void main(void)
{
int i;
char c;
for(i=0;i<5;i++)
{
scanf("%c",&c);
printf("c=%d\n",c);
printf("i=%d,\n",i);
}
getchar();
exit(0);
}
同样我输入:x+enter y+enter z+enter
结果:
x
c=120,
i=0,
c=10,
i=1,
y
c=121,
i=2,
c=10,
i=3,
z
c=122,
i=4,
[解决办法]
- C/C++ code
#include <stdio.h> void main(void) { int i; char c; for(i=0;i <5;i++) { scanf( "%c ",&c); printf( "c=%c,\n ",c); //这里是以字符形式输出// printf( "c=%d,\n ",c); //这里是将字符以整形输出(字符的10进制) printf( "i=%d,\n ",i); } getchar(); exit(0); }
[解决办法]
>>这样就正常了 不过 scanf 不是很好用啊 没想到可以用来处理字符串
-------------------------------------------------
int scanf(const char *format, arg_list):格式化输入函数
int getchar(void):从标准输入流读取一个字符并回显,读到回车符时退出