Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. - C (СИ)

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

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

День добрый. Посмотрите что я неправильно делаю:
#include <stdio.h>
#include<conio.h>
void main() {
FILE *f;
int i,k;
char s[256];
clrscr();
f=fopen("C:\\lab.txt","r+");
 
for(i=0;i<10;i++) {
  fprintf(f,"%d stroka \n",i+1);
          }
 
puts("vvedite K: ");
scanf("%d",&k);
 
fseek(f,0,0);
for(i=0;fgets(s,256,f) ;i++ ) {
       if ((i+1)==k)     {
     fprintf(f,"\n");
                     }
                  }
 
fseek(f,0,0);
for(i=0;i<11;i++)   {
   fgets(s,256,f);
   puts(s);     }  

fclose(f);
getch();
}
Задание: Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.

Решение задачи: «Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K.»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
 
int main()
{
FILE *ftext, *fnum, *fres;
char buf, num=0;
 
ftext = fopen("C:\\text.txt","r+");
fnum = fopen("C:\\number.txt","r+");
fres = fopen("C:\\res.txt","w+");
 
if(ftext == NULL || fnum == NULL) {perror("error"); getch(); return 1;}
fseek (ftext, 0, SEEK_SET);
fseek (fnum, 0, SEEK_SET);
 
buf = fgetc (ftext);
do {
 if ( buf == '\n' ) 
  {
   num = fgetc(fnum);
   if (num != EOF)
    fputc(num,fres);
  }
 fputc(buf,fres);
 buf = fgetc (ftext);     
} while ( !feof(ftext) );
 
fclose(ftext);  fclose(fnum);  fclose(fres);
getch();
}

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

В этом коде используется язык программирования C для чтения двух текстовых файлов и записи их содержимого в третий файл. Вот список действий, которые выполняются в этом коде:

  1. Открываются три файла: text.txt, number.txt и res.txt.
  2. Проверяется, открылись ли файлы успешно. Если нет, выводится сообщение об ошибке и программа закрывается.
  3. Устанавливается позиция чтения в начало каждого файла.
  4. В цикле до тех пор, пока не достигнут конец первого файла, считывается содержимое каждого файла.
  5. Если считанный символ из первого файла является символом новой строки, считывается следующее число из второго файла.
  6. Число записывается в третий файл.
  7. Считанный символ из первого файла записывается в третий файл.
  8. Файлы закрываются после завершения чтения.
  9. Ожидается нажатие клавиши для выхода из программы.

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


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

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

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