[英]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.