所以我试图读取每行中包含8个字符的1024行文件,我试图将所有内容存储在2d字符数组中,每个元素包含一个8个字符的字符串 这就是我所拥有的
char ch=" ";
char page[1024][9];
while(i!=32767)
{
ch = fgetc(fp);
printf("%c",ch);
i++;
if(ch==EOF)
{
break;
}
page[q][p]=ch;
if (p<7)
p=p+1;
else if (p==7)
{p=0;q=q+1;}
}
我在输出中打印了大约50-100行的2d阵列,但之后它停止并给我一个错误。 C1.exe中0x5f942174处的未处理异常:0xC0000005:访问冲突读取位置0x00000000。
答案 0 :(得分:1)
你在最后if
的身体周围缺少大括号;基本上你的代码与
if (p<7)
{
p=p+1;
}
else
{
p=0;
}
q=q+1;
表示q
在每次迭代时递增,而不仅仅在p
达到7时递增。将其更改为
if (p<7)
{
p=p+1;
}
else
{
p=0;
q=q+1;
}
答案 1 :(得分:1)
您在else if
:
else if (p==7) {
p=0;q=q+1;
}
答案 2 :(得分:0)
这是您想要的代码:请阅读下面的注释代码
char ch=' '; // changed ch=" " to ch= ' '
char page[1023][7]; //changed to 1024 line and 8 char.0-1023 and 0-7 indexes
int q=0,p=0;
do {
ch = fgetc(fp);
printf("%c",ch);
page[q][p]=ch;
p=p+1;
if (p>7) {
p=0;
q=q+1;
}
} while(ch!=EOF);