Программа зависает при Fopen - C (СИ)
Формулировка задачи:
#include <stdio.h>
int main(void)
{
int i;
FILE * fileRead;
fileRead = fopen("E:\\matrix.txt", "a+");
int n, m, temp, kolP = 0, sumP = 0;
fscanf(fileRead, "%i%i", &n, &m);
for(i = 0; i < n*m; i++){
fscanf(fileRead, "%i", &temp);
if(temp>0){
kolP++;
sumP+=temp;
}
}
fflush(fileRead);
fprintf(fileRead, "\nКоличество положительных - %i Сумма положительных - %i", kolP, sumP);
fclose(fileRead);
return 0;
}
файл содержит:
2 3
1 2 3
4 5 6
Решение задачи: «Программа зависает при Fopen»
textual
Листинг программы
... fseek(fileRead, 0, SEEK_END); fprintf(fileRead, "\nКоличество положительных - %i Сумма положительных - %i", kolP, sumP); ...
Объяснение кода листинга программы
fileRead- это файловый указатель, который вероятно был получен через функциюfopen.kolP- это переменная целочисленного типа, которая представляет количество положительных чисел.sumP- это переменная целочисленного типа, которая представляет сумму положительных чисел.fseek(fileRead, 0, SEEK_END)- это функция, которая перемещает файловый указатель в конец файла.fprintf(fileRead,\nКоличество положительных - %i Сумма положительных - %i, kolP, sumP);- это функция, которая записывает строку формата в файл, используя файловый указательfileRead. В данной строке формата происходит подстановка значений переменныхkolPиsumPв соответствующие места в строке.