Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. - C (СИ)
Формулировка задачи:
День добрый. Посмотрите что я неправильно делаю:
Задание: Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.
Листинг программы
- #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.»
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 для чтения двух текстовых файлов и записи их содержимого в третий файл. Вот список действий, которые выполняются в этом коде:
- Открываются три файла:
text.txt
,number.txt
иres.txt
. - Проверяется, открылись ли файлы успешно. Если нет, выводится сообщение об ошибке и программа закрывается.
- Устанавливается позиция чтения в начало каждого файла.
- В цикле до тех пор, пока не достигнут конец первого файла, считывается содержимое каждого файла.
- Если считанный символ из первого файла является символом новой строки, считывается следующее число из второго файла.
- Число записывается в третий файл.
- Считанный символ из первого файла записывается в третий файл.
- Файлы закрываются после завершения чтения.
- Ожидается нажатие клавиши для выхода из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д