我正在对两个不同的输入使用 scanf_s 并将它们放入 char 数组中。我附上了代码和它给出的输出
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 都不起作用,这让我发疯。
最佳答案
您的 scanf_s
调用没问题。您需要更改的是行:
printf("%s %s", firstName[30], lastName[30]);
像这样使用 printf
,您试图打印 firstName
和 lastName
位置 30
中的元素数组,它不仅要求打印特定位置而不是整个数组,而且超出了数组的范围。这会调用 undefined behaviour .
将其替换为:
printf("%s %s", firstName, lastName);
关于c - scanf_s 每次都返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43865321/