Заполнить массив и сохранить в файл - C (СИ)

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

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

Всем добрый день, есть вопросы по файлах: Мне нужно сначала с клавиатуры заполнить массив текстовыми даными, типа введиты 1 имя: Андрей ... введите N + 1 имя: Дима .. пусть нужно так ввести 5 раз (цикл i <= 5) дале после ввода, мне нужно занести ету информацию в текстовый файл и потом (по возможности) увидеть какая информация занесена в текстовый файл через среду.. Путем например
name[] = {дима, андрей};
я могу сделать а вот с клавиатурой самостоятельно заполнить файл немогу, вчера только прочитал о файлах, и с количеством функций (8) запутался (fputs, sscanf ...) Буду очень благодарен за пример такого кода! Вот начало програмы:
#include <stdio.h>
#include <string.h>
 
#define fname "main.txt"
#define N 5
 
int main()
{
    FILE *fp;
    char name[80 + 1];
    int i = 0;
 
    system("cls");
 
    fp = fopen(fname, "w"); //файл для записи данных с клавиатуры
    if(fp)          //если не NULL тогда вперед!
    {
    ...
 
    ...
    fclose(fp);     //закрытие файла
 
    fp = fopen(fname, "r"); //файл для вывода данных, которые в нем есть
    ...
 
    ...
    fclose(fp);     //закрытие файла
getch();
return 0;
}

Решение задачи: «Заполнить массив и сохранить в файл»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define SIZE_BUF 80
#define ERR_OPEN_FILE 1
 
int main()
{
    FILE *fp;
    char buf[SIZE_BUF];
    char *fname = "main.txt";
    const int count_names = 5;
    int i;
    
    if( (fp = fopen(fname, "wt")) == NULL)
        exit(ERR_OPEN_FILE);
 
    for(i = 1; i <= count_names; i++){
        printf("enter name %i:", i);
        fgets(buf, SIZE_BUF, stdin);
        fprintf(fp, "%s", buf);
    }
 
    fclose(fp);
 
    if( (fp = fopen(fname, "rb")) == NULL)
        exit(ERR_OPEN_FILE);
 
    printf("data int file %s: ", fname);
    
    i = fgetc(fp);
    while(!feof(fp)){
        putchar(i);
        i = fgetc(fp);
    }
 
    fclose(fp); 
            
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и строками
  2. Определение размеров буфера и кода ошибки при открытии файла
  3. Создание указателя на файл и буфера для чтения
  4. Ввод имен файлов с помощью функции fgets
  5. Запись имен файлов в файл с помощью функции fprintf
  6. Закрытие файла
  7. Открытие файла для чтения
  8. Вывод сообщения о начале чтения файла
  9. Чтение файла посимвольно с помощью функции fgetc
  10. Вывод содержимого файла на экран с помощью функции putchar
  11. Закрытие файла
  12. Вывод сообщения об успешном выполнении программы

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


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

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

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