Когда я ввожу данные, как фамилию, у меня есть это, поэтому он ограничивает это до 10 символов, но когда я пытаюсь ввести фамилию, символы, которые были исключены из первого имени, помещаются в фамилию. Например, если я нахожу aaaaaaaaaab
, он будет хранить a
, но b
будет помещен в фамилию.fgets limit limit length
Любые предложения, как я это исправить? Я хочу, чтобы он ограничивал длину до нужной суммы.
printf("you chose add new record\n");
printf("enter the person information: \n");
printf("Please enter the first name: \n");
//limits to size 10
char namein[11];
fgets(namein, 11, stdin);
printf("the first name was: %s\n", namein);
printf("Please enter the last name: \n");
//limits to size 20
char lastin[21];
fgets(lastin, 21, stdin);
printf("the last name was: %s\n", lastin);
Вы хотите настоять на том, чтобы имя и фамилия были введены на две строки ввода, или вы будете принимать «имя первого имени» в одной строке как действительную? Методы использования различны. Первое проще; вы можете прочитать всю строку вперед (с большим буфером _much_) и использовать 'sscanf()' для постпроцесса буфера. Обратите внимание: если кто-то войдет в Jim E Cork', ваш 'fgets()' получит 'Jim E Cork' в' namein'; неясно, что это именно то, что вы хотели. Кроме того, следующий 'fgets()' получит только новую строку после «Jim E Cork», которая также не то, что вы хотели. –
Я в основном собираюсь искать первые 10 символов, поэтому, если бы имя было jimmyeguysZ, Z был бы отключен и сохранил бы вход только как jimmyeguys –