C语言手动输入字符数组 获取不正确
好像涉及到字符处理就必须的特别小心,一不小心就掉坑里了。
下面是我的程序,不懂为什么结果会是这样,求知道的人点拨一下~~~
#include<stdio.h>
#define NUM 5
int main()
{
int i,j;
char a[NUM ][NUM ];
for( i = 0; i < NUM; i++)
for( j = 0; j < NUM; j++)
scanf("%c", &a[i][j]);
for( i = 0; i < NUM; i++)
{
for( j = 0; j < NUM; j++)
printf("%c", a[i][j]);
printf("\n");
}
return 0;
}
这里我的输入是:
....#
.#.@.
.#@..
#....
.....
程序输出为:
....#
.#.@
.
.#@
..
#.
...
.
WTF,求助~~~ C语言 二维字符数组
[解决办法]
#include<stdio.h>
#define NUM 5
int main()
{
int i,j;
char a[NUM ][NUM ];
for( i = 0; i < NUM; i++)
{
for( j = 0; j < NUM; j++)
{
scanf("%c", &a[i][j]);
if ( '\n' == a[i][j])
{
j--;
}
}
}
for( i = 0; i < NUM; i++)
{
for( j = 0; j < NUM; j++)
printf("%c", a[i][j]);
printf("\n");
}
//system("pause");
return 0;
}
#include<stdio.h>
#define NUM 5
int main()
{
int i,j;
char a[NUM ][NUM ];
for( i = 0; i < NUM; i++)
for( j = 0; j < NUM; j++)
{
scanf("%c", &a[i][j]);
getchar();
}
for( i = 0; i < NUM; i++)
{
for( j = 0; j < NUM; j++)
printf("%c", a[i][j]);
printf("\n");
}
return 0;
}