繁体   English   中英

我不知道为什么我不能使用 scanf_s()?

[英]I don't know why i can't use scanf_s()?

我的 C 编程 class 中有作业。 我必须输入 3 个人关于姓名、专业、ID(例如 9304171)和 output 的信息来控制台“姓名、出生(yyyy-mm-dd)、leep 年份、国籍、性别、专业”。

我试过了,但我的 scanf_s 没有被激活。 如果我尝试激活我的代码,char 数组可以激活,但我的 integer 数组无法激活。

char name[4]; // name
char major[4]; // major
int id[7] = {}; // ID

// Input name, major, ID 

printf("Name : ");
scanf_s("%s \n", &name, 4);

printf("Major : ");
scanf_s(" %s \n", &department, 4);

printf("ID : ");
scanf_s("%d \n", id);

我的英语能力太傻了……但它让我很生气,我乞求帮助……

PLZ,有人帮我TT

声明类似:

char name[50], major[50];
int id; // array removed

如果您遇到scanf_s()问题,您可以使用fgets() ) ,我怀疑您为名称数组(即 4 个)提供了这么短的元素,这与错误有关。 使用fgets()尝试以下操作:

printf("Name: ");
fgets(name, 50, stdin); // fgets buffered for 50 elements

printf("Major: ");
fgets(major, 50, stdin); // fgets ...

printf("ID: ");
scanf("%d", &id); // scanf() can be used here

让我们看一个示例 output(没有错误):

// INPUT
Name: John Doe
Major: Something
ID: 101

// OUTPUT
Name: John Doe
Major: Something
ID: 101

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM