Сохранение строк в файл - C (СИ)

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

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

Программа должна записывать строки в текстовый файл. При вводе n gets считывает n-1 строк в файл. Почему это происходит вроде в цикле ошибок нет?
// edit.cpp: главный файл проекта.
 
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
 
using namespace System;
 
void vvod(int n);
 
int main(array<System::String ^> ^args)
{ 
    int n;
    
    printf("vvedite kol-vo strok");
    scanf("%d", &n);
    vvod(n); 
    return 0;
}

void vvod(int n)
{
    char **p;
    int i;
    
    p= (char**)malloc(n*sizeof(char*));

    FILE *fp;
 
      if((fp=fopen("f7.txt", "w+"))==NULL) {
        printf("Ошибка при открытии файла.\n");
          exit(1);
        }
 
     for(i=0;i<n;i++)
      {
          p[i]= (char*)malloc(80*sizeof(char));
      
       if(!p[i])
       {
           printf("pamyat ne videlena");
           exit (1);
       }
      
     gets(p[i]);
       
       fputs(p[i], fp);
       fputs("\n", fp);
      } 

     fclose(fp);
}

Решение задачи: «Сохранение строк в файл»

textual
Листинг программы
void vvod(int n);
 
int main(void)
{ 
    int n;
    printf("vvedite kol-vo strok: ");
    scanf("%d", &n);
    fflush(stdin);
    vvod(n); 
    system("pause");
    return 0;
}
void vvod(int n)
{
    char *p = (char*)malloc(80*sizeof(char));
    FILE *fp;
    if((fp=fopen("f7.txt", "w+"))==NULL) {
         puts("ГЋГёГЁГЎГЄГ* ïðè îòêðûòèè ГґГ*éëГ*.\n");
         free(p);
         exit(1);
    }
    for(int i = 0;i<n;i++)
    {
        if(p == NULL)exit (1);
        gets(p);
        fputs(p, fp);
        fputs("\n", fp);
    } 
    free(p);
    fclose(fp);
}

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

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

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


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

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

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