我正在尝试从用户那里获取二维字符数据,但它没有正确地从用户那里获取输入。您能否突出显示以下代码中的错误?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i, j, k;
char **ch;
printf("\nEnter k : ");
scanf("%d",&k);
ch = (char **) malloc (sizeof(char*) * k );
if(ch == NULL) { printf("\n Not enough memory for ch array "); exit(0);}
for(i = 0; i < k; i++) {
ch[i] = (char *) malloc (sizeof(char) * k );
if(ch[i] == NULL) { printf("\n Not enough memory for ch array "); exit(0);}
}
printf("\nenter char matrix ( %d X %d )\n", k,k);
for(i = 0; i < k; i++) {
for(j = 0; j < k; j++) {
scanf("%c", (*(ch + i) + j) );
}
}
printf("\n char matrix : \n");
for(i = 0; i < k; i++) {
for(j = 0; j < k; j++) {
printf("%c ",*(*(ch + i) + j));
}
printf("\n");
}
for(i = 0; i < k; i++) free(*(ch + i));
free(ch);
return 0;
}
我尝试替换char
为int
. 它确实适用于整数。
char
从 阅读有什么问题stdin
?