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);