Считать массив чисел из файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Приветствую!возникла небольшая проблема:программа читает только первый символ файла.совершенно не понимаю почему. Общее задание:считать из файла массив,проделать с ним операции(там сложный алгоритм со стеком),записать получившиеся результаты в второй массив и вывести его в другой файл.Если напишите ещё и заготовки для стека и вывода в файл,то я буду бесконечно благодарен.Язык:си.
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
    int k,i,s;
FILE *ptrfile;
k=0;
ptrfile=fopen("mass.txt","r+"); 
 
while ((fscanf(ptrfile, "%d",&s)!=EOF))
{    if(!ptrfile) break;    
        k+=1;
}
int (*c)[1]= malloc(k*sizeof(int));  
 lseek(prtfile,1,0);    
for(i=0;i<k;i++)
{                                 
    fscanf(ptrfile, "%d",&c[i][0]);  
    printf("c[%d][%d]=%d  ",i,c[i][0]);
}
fclose(ptrfile);
free(c); 
 
getchar();  
return 0;
}

Решение задачи: «Считать массив чисел из файла»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
int main()
{
   int k = 0, i, s;
   FILE* ptrfile = fopen("mass.txt", "r+");
   assert(ptrfile);
 
   while (fscanf(ptrfile, "%d", &s) != EOF)
   {
      k++;
   }
 
   int* c = malloc(k * sizeof(int));
 
   rewind(ptrfile);
 
   for (i = 0; i < k; i++)
   {
      fscanf(ptrfile, "%d", &c[i]);
      printf("c[%d]=%d  ", i, c[i]);
   }
 
   fclose(ptrfile);
   free(c);
 
   getchar();
   return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Включаются необходимые заголовочные файлы.
  2. Устанавливаются начальные значения счётчика k и i, а также значение переменной s.
  3. Открывается файл mass.txt для чтения и записи.
  4. Проверяется успешность открытия файла.
  5. В цикле while считываются все числа из файла в переменную s.
  6. Переменная k увеличивается на единицу после каждой итерации цикла.
  7. Выделяется память под массив c размером k.
  8. В цикле for считываются числа из файла в массив c.
  9. Каждое число выводится на экран.
  10. Файл закрывается.
  11. Выделяемая память освобождается.
  12. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы