我增加计数器后,我的数组元素会改变值

时间:2015-03-13 02:21:27

标签: c arrays

我试图将文件读入字符数组,但每当我增加计数器(对于数组元素)时,我的数组元素似乎会改变值。 在下面的代码中,我在计数器递增之前和计数器递增之后打印出数组值(以找出问题)。

我不知道如何解决这个问题(代码在C中)......

char fileContents[rowNum * colNum];
rewind(file);

int count = 0;
while((ch = fgetc(file)) != EOF){
   if(ch != '\n'){
      fileContents[count] = ch;
      printf("%c ", fileContents[count]);
      count++;
      printf("%c %d\n", fileContents[count - 1], count - 1);
  }
}

这些是文件内容"

XXXX XXXX
XX XXX XX
X X X X X
XX XX XXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX

1 个答案:

答案 0 :(得分:-3)

尝试

char fileContents[rowNum * colNum];
rewind(file);

int count = 0;
while((ch = fgetc(file)) != EOF){
   if(ch != '\n'){
      fileContents[count] = ch;
      printf("%c ", fileContents[count]);
      printf("%c %d\n", fileContents[count - 1], count);
      count++;
  }
}

我在printf之后添加了count++语句,因为您可能会增加countcount = fileContents.size();这意味着fileContents[count]超出范围