Найти символы переноса строки в файле и заменить их на пробелы - C (СИ)
Формулировка задачи:
Считываю байты из файла, нахожу символ переноса строки и заменяю его на пробелы, когда заношу всё в другой файл out.txt то отображается какая-то фигня. Как можно исправить?
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <string.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int size, result;
FILE *out = fopen("out.txt","wb");
FILE *in = fopen("in.txt","rb");
if(in==NULL) {printf("Создайте файл in.txt\n"); exit(1);}
/*Посчитали сколько нужно будет байт*/
fseek (in, 0, SEEK_END);
size = ftell(in);
fseek (in, 0, SEEK_SET);//вернулись в начало
/*Выделили память под заполнение*/
char *b = (char *)malloc(size);
if(b==NULL) exit(1);
/*Считали всё из файла*/
result = fread(b,1,size,in);
if(result!=size) {printf("Возникла ошибка\n"); exit(1);}
int i;
for(i=0; i<size; i++, b++)
{
if(*b==13&&*(b+1)==10) {*b=32; *(b+1)=32;}
printf("%c", *b);
}
fwrite(b, 1, size, out);
printf("\n");
return 1;
}Решение задачи: «Найти символы переноса строки в файле и заменить их на пробелы»
textual
Листинг программы
с