当前位置:   article > 正文

c语言scanf_s函数详解,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", &stu1.grade,10);

printf("姓名:%s\n", stu1.name);

printf("性别:%s\n", stu1.sex);

printf("年龄:%d\n", stu1.age);

printf("城市:%s\n", stu1.city);

printf("年级:%s\n", stu1.grade);

return 0;

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程变革者/article/detail/62716
推荐阅读
相关标签
  

闽ICP备14008679号