0

我将 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 都不起作用,它让我发疯。

4

1 回答 1

4

你的scanf_s电话没问题。您需要更改的是行:

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

像这样使用printf,您试图在数组的位置打印元素30,这不仅要求打印特定位置firstNamelastName不是整个数组,而且超出了数组的范围。这会调用未定义的行为

将其替换为:

printf("%s %s", firstName, lastName);
于 2017-05-09T08:55:53.570 回答