Я кое-что заметил, когда использовал функцию setvbuf () для установки буфера обработки файлов. Если я не использую размер буфера 256 или выше, я получаю странные символы, когда пытаюсь напечатать буфер. Однако, если я использую 256 размеров для буфера, я получаю правильное представление символов до 8 символов. Я провел исследование по этой проблеме, но, думаю, я не смог найти ответ из-за недостатка знаний.
#include <stdio.h>
#define SIZE 8 //Below 256
int main(void)
{
char buffer[SIZE];
FILE *fp = fopen("name.txt","w");
setvbuf(fp,buffer,_IOFBF,SIZE);
fputs("a",fp);
printf("%s\n",buffer);
fclose(fp);
return 0;
}
Ожидаемый результат
a
Фактический результат
a!'^//Something like this.