[英]Why can't I use 'scanf_s' for reading a character and a number at once?
[英]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.