簡體   English   中英

無法存儲fgetc()的值

[英]Unable to store value of fgetc()

我正在嘗試創建一個程序,該程序從文本文件中提取2個矩陣,然后將它們相乘。 他們將始終能夠成倍增加。 我在存儲從矩陣中獲取的數據時遇到問題。 我是C語言的新手,正在使用的IDE不會引發任何錯誤,但是程序無法運行。 我推論這是因為我試圖將int c存儲到a[i]但是我不確定為什么。

我曾嘗試更改數組和c的類型,但這些似乎都不是問題。

int main()
{
FILE *matrixA;
FILE *matrixB;
int a[8];
int b[8];
int i;
int j;

matrixA = fopen("matrixA.txt", "r");
matrixB = fopen("matrixB.txt", "r");

while(1) {
  int c = fgetc(matrixA);
  a[i] = c;
  if( feof(matrixA) ) {
     break;
  }
  printf("%c", c);
  i++;
}

printf("\n");
printf("A %c", a[0]);
printf("\n");

while(1) {
  int c = fgetc(matrixB);
  b[j] = c;
  if( feof(matrixB) ) {
     break;
  }
  printf("%c", c);
  j++;
}
printf("B %c", b[0]);

我收到的唯一錯誤消息是主程序返回-1029219。 矩陣以“ 1 2 3 4 \\ n8 7 6 5”的形式出現。 目前,我不測試空格,但是一旦我能夠弄清楚如何將值傳遞給a []和b [],我將進行測試。 謝謝

您不應該一次讀取一個字符,請使用fscanf()從文件中讀取整個整數。 它將解析數字並跳過它們之間的空格。

int i = 0;
while(fscanf(matrixA, "%d", &a[i]) == 1) {
  printf("%d ", a[i]);
  i++;
}
printf("\n");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM