8个回答
展开全部
c语言中不用scanf可以用scanf_s来代替。
scanf函数在读取时不检查边界,所以可能会造成内存访问越界。scanf_s函数带“_s”后缀是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素。格式为“scanf_s(格式符,变量...变量,缓冲长度)”返回成功读入的数据项数,读取单个字符也需要限定长度。
扩展资料:
scanf_s函数被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。变量的地址是在编译阶段分配的(存储顺序由编译器决定)。
如果scanf_s函数中格式符是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。
展开全部
gets( )
scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。
gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。
char string[15]; gets(string); /*遇到回车认为输入结束*/
scanf("%s",string); /*遇到空格认为输入结束*/
所以在输入的字符串中包含空格时,应该使用gets输入。
scanf和gets获取字符串时的区别
在C语言中,能构获取字符串的函数至少有两个:
1.scanf()
所在头文件:stdio.h
语法:scanf("格式控制字符串",变量地址列表);
接受字符串时:scanf("%s",字符数组名或指针);
2.gets()
所在头文件:stdio.h
语法:gets(字符数组名或指针);
两者在接受字符串时:
1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;
2.相同点:
字符串接受结束后自动加'\0'。
例1:
#include <stdio.h>
main()
{
char ch1[10],ch2[10];
scanf("%s",ch1);
gets(ch2);
}
依次键入asd空格fg回车,asd空格fg回车,则ch1="asd\0",ch2="asd fg\0"。
scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。
gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。
char string[15]; gets(string); /*遇到回车认为输入结束*/
scanf("%s",string); /*遇到空格认为输入结束*/
所以在输入的字符串中包含空格时,应该使用gets输入。
scanf和gets获取字符串时的区别
在C语言中,能构获取字符串的函数至少有两个:
1.scanf()
所在头文件:stdio.h
语法:scanf("格式控制字符串",变量地址列表);
接受字符串时:scanf("%s",字符数组名或指针);
2.gets()
所在头文件:stdio.h
语法:gets(字符数组名或指针);
两者在接受字符串时:
1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;
2.相同点:
字符串接受结束后自动加'\0'。
例1:
#include <stdio.h>
main()
{
char ch1[10],ch2[10];
scanf("%s",ch1);
gets(ch2);
}
依次键入asd空格fg回车,asd空格fg回车,则ch1="asd\0",ch2="asd fg\0"。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getchar();输入单个字符
gets();输入一串字符串
getche();//输入单个字符,不用输入回车确认,头文件:conio.h
gets();输入一串字符串
getche();//输入单个字符,不用输入回车确认,头文件:conio.h
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是输入字符串的话gets(); 字符getchar();
别的话没有可以替代的了。
不然就用文本输入
不要用标准输入
别的话没有可以替代的了。
不然就用文本输入
不要用标准输入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
main()
{char a[1];
gets(a); /*从键盘输入字符数组a*/
puts(a); /*输出a*/
这个只是限于字符数组。
我知道也只有这个了。
main()
{char a[1];
gets(a); /*从键盘输入字符数组a*/
puts(a); /*输出a*/
这个只是限于字符数组。
我知道也只有这个了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询