c语⾔scanf_s函数详解,scanf_s()函数
scanf_s()或scanf()函数从标准输⼊读取数据,并根据格式控制字符串中的格式说明符将它们转换为⼀个或多个值。
scanf_s()函数的原型如下:
int scanf_s(const char * restrict format, . . . );
scanf()函数也有⼀个类似的原型。
scanf()和scanf_s()之间的区别是:
后者需要两个参数,每个输⼊数据由c,s和[说明符,
前者只需要⼀个参数。
格式控制字符串基本上是scanf_s()应如何将传⼊字符流转换为所需值的描述。
在格式控制字符串之后,可以拥有⼀个或多个可选参数。
对于使⽤规范c,s或[说明符]读取的每个输⼊,第⼀个对应的参数是指向要存储输⼊的内存的指针,第⼆个参数对应于前⼀个参数指向的字节数。
scanf_s()从stdin读取,直到它到达格式控制字符串的末尾或者直到出现错误情况。
在控制台程序中需要输⼊时,将使⽤此函数。 这将接收⾏上的所有输⼊,直到按下回车键。 然后它会将值放⼊声明的变量中。它与scanf()函数相同,但它是安全的。 下⾯是⼀个例⼦:
#include
int main()
{
char c;
printf("Enter a letter");
scanf_s("%c", &c, 1);
printf("%s",&c);
return 0;
}
scanf()在vs2013⾥报错,编译器提⽰要⽤scanf_s代替;
scanf_s()参数与scanf()不同;例如scanf("%s",&name,n),整型n为name类型的⼤⼩,如果name是数组,那么n就是该数组的⼤⼩。
#include
#include
struct Student
{
char name[10];
char sex[10];
int age;
char city[10];
char grade[10];
};
int main()
{
struct Student stu1;
printf("请输⼊姓名:");
scanf_s("%s", &stu1.name,10); printf("请输⼊性别:");
scanf_s("%s", &stu1.sex,10); printf("请输⼊年龄:");
scanf_s("%d", &stu1.age,4); printf("请输⼊城市:");
scanf_s("%s", &stu1.city,10); printf("请输⼊年级:");
scanf_s("%s", &ade,10); printf("姓名:%s\n", stu1.name); printf("性别:%s\n", stu1.sex); printf("年龄:%d\n", stu1.age); printf("城市:%s\n", stu1.city); printf("年级:%s\n", ade); return 0;
}
>scanf输入整型数组
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论