gpt4 book ai didi

c - 使用 Visual Stuido 处理 C 语言中的 scanf_s()、print_r() 和 char 的问题

转载 作者:行者123 更新时间:2023-11-30 18:27:24 25 4
gpt4 key购买 nike

在 Visual Studio 2017 中,我在使用 scan_s()printl_s()char 编写简单输入和输出应用程序时遇到问题。请检查 2 个应用程序,并帮助解释我使用 scan_s()printl_s()char 时出现的问题。

这段代码没问题:

#include <stdio.h>
int main() {
char name[30];
printf("Enter name: ");
gets(name); // enter string
printf("Name: ");
puts(name); // display string
_getch();
}
<小时/>
Enter name: Dung_cute
Name: Dung_cute
<小时/>

这个是错误的:

#include <stdio.h>
int main() {
char name[20];
printf_s("Enter name: ");
scanf_s("%c", name); // enter string
printf("Your name is: %s.", name);
_getch();
}
<小时/>
Enter name: Dung_cute
Your name is: D?????aietnauie'ai.

最佳答案

scanf_s 还要求您提供要读取的字节数。默认情况下,它只读取一个。

请查找here更多信息。

示例(来自上面的链接):

result = scanf_s( "%d %f %c %C %s %S", &i, &fp, &c, 1,
&wc, 1, s, (unsigned)_countof(s), ws, (unsigned)_countof(ws) );
<小时/>

因此,您的

scanf_s 应该是这样的:

scanf_s("%c", name, _countof(name));
<小时/>

您可能还需要将类型说明符更改为“%s”。我手头没有 Visual Studio 来测试。

scanf_s("%s", name, _countof(name));
^

关于c - 使用 Visual Stuido 处理 C 语言中的 scanf_s()、print_r() 和 char 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56180728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com