Я выполняю простую задачу: чтение одной строки за раз из файла , печать строки и добавление всего содержимого в массив символов. Все началось с Segmentation fault (core dumped)
из моего проекта, затем я продолжал изолировать свой код, пока не достиг этого:
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *fp;
fp = fopen("read.txt","r");
char buffer[255];
char longBuff[1024] = "";
while(fgets(buffer, 255, fp)) {
printf("%s\n",buffer);
strcat(longBuff, buffer);
}
fclose(fp);
printf("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWTF%s\n", longBuff);
}
Файл read.txt
:
short
this is Longer
+++++
sad
И вывод:
sad++is Longer
sad++is LongerWWWWWWWWWWWWWWWWWWWTFshort
Когда я с уверенностью ожидал:
short
this is Longer
+++++
sad
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWTFshortthis is Longer+++++sad
Я задавал несколько похожих вопросов, и большинство ответов относятся к возврату каретки , но я до сих пор не понимаю это поведение и его причину.