scanf_s возвращает Null каждый раз

Я использую scanf_s для двух разных входов и помещаю их в массивы символов. Я приложил код и вывод, который он дает

char firstName[30];
char lastName[30];


int main() {

// Input Name
printf("Please input your name: ");
scanf_s("%s %s", firstName, 30, lastName, 30);

printf("%s %s", firstName[30], lastName[30]);
_getch();

return 0;
}

выход:

Please input your name: Jane Smith
(null) (null)

любая помощь в решении этой проблемы была бы полезна, потому что любые scanf_s, которые я делаю, не работают, и это сводит меня с ума.

1 ответ

Ваш scanf_s Звонок в порядке. То, что вам нужно изменить, это строка:

printf("%s %s", firstName[30], lastName[30]);

С помощью printf вот так вы пытаетесь напечатать элемент в позиции 30 из firstName а также lastName массивов, который не только просит напечатать определенную позицию вместо всего массива, но также находится за пределами ваших массивов. Это вызывает неопределенное поведение.

Заменить его на:

printf("%s %s", firstName, lastName);
Другие вопросы по тегам