я нашел, когда я использую функцию fgets
следующим образом:программа не читает строку с определенной длиной в fgets()
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char str[10];
fgets(str, 5, stdin);
printf("%s", str);
system("PAUSE");
return 0;
}
Если я ввод в 123456789
, он будет выводить 1234
. Это 4 символа - не 5, которые я определил в функции. Что происходит с пятым персонажем?
редактировать: название обновлено
пятый знак - # знак. строки заканчиваются нулевым завершением на языке C – saygins
@saygins извините за отказ от вашего редактирования, но в то же время у меня одновременно было значительное редактирование. и NULL (макрос препроцессора для нулевого указателя) не совпадает с NUL (нулевой символ): http://stackoverflow.com/questions/2911089/null-terminating-a-string –
см. [fgets] (http: //en.cppreference.com/w/c/io/fgets) (_Читает не более ** count - 1 ** символов из данного потока файлов_) – BLUEPIXY