我将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都不会起作用而且会让我发疯。
答案 0 :(得分:4)
您的scanf_s
电话很好。你需要改变的是行:
printf("%s %s", firstName[30], lastName[30]);
像这样使用printf
,您尝试在30
和firstName
数组的lastName
位置打印元素,这不仅要求打印特定位置整个阵列,但也是你的阵列之外'界限。这会调用undefined behaviour。
将其替换为:
printf("%s %s", firstName, lastName);