Ошибка сегментирования при работе с файлами - C (СИ)
Формулировка задачи:
Написал программу для считывания символов A из файла, и записи другого файла без этих символов
Компилировал с помощью makefile
C = gcc
all: file
file: file.o
file.o: file.c
.PHONY: clean
clean:
rm -f file file.o
Сам файл data.txt
AGG
Все скомпилировал, запускаю, и пишет Ошибка сегментирования.
Как ее исправить?
Листинг программы
- #include <stdio.h>
- main()
- {
- FILE *in, *out;
- char s;
- in = fopen("data.txt", "r"); //читаем файл
- out = fopen("data_new.txt", "w"); //создаем измененный файл
- while ((s = fgetc(in))!= EOF)
- {
- if (s != 'A') //считываем и игнорируем A
- fputc(s, out); //записываем переменную в файл
- }
- fclose(out);
- fclose(in);
- return 0;
- }
Решение задачи: «Ошибка сегментирования при работе с файлами»
textual
Листинг программы
- (gdb) run
- Starting program: /home/cdevel/workarea/read_file/read_file
- Program received signal SIGSEGV, Segmentation fault.
- 0x0000000000400686 in read_from_file (file_name=0x4007cc "input.txt", result_str=0x0) at read_file.c:14
- 14 while ((result_str[i] = fgetc(work_file)) != EOF) i++;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д