У меня проблема, я строю строку в цикле, и вывод этой строки в stout отображает строку и символ 'y' с двумя точками над ним как последний символ.
Что это?
Я создаю строку в этой функции:
char get_string(char *buf, int ble, FILE *fp, char del)
{
int i = 0;
int c;
char result;
memset(buf, 0, BUFLEN);
do {
c = fgetc(fp);
if (c == del) {
buf[i] = '\0';
result = c;
break;
} else if(c == '\n') {
buf[i] = '\0';
result = '\n';
break;
} else {
buf[i] = c;
i++;
}
} while (c != EOF);
return result;
}
, а затем используйте buf и результат в следующей функции:
char pair[BUFLEN];
char end;
do {
end = get_string(pair, BUFLEN, fp, ';');
printf("Result: %s\n",pair);
} while (pair != NULL);
Последняя итерация вышеприведенного Выводит "Result: y", я понятия не имею, почему.