c语言中不用scanf要用什么来代替(大一初学者,求浅解)?

如上普通的编程题,如计算什么啊... 如上
普通的编程题,如计算什么啊
展开
 我来答
仁昌爱娱乐
高粉答主

2020-02-20 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459851

向TA提问 私信TA
展开全部

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”。

andyandyandysu
推荐于2017-09-05
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
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"。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
starrydzf
2010-06-25 · TA获得超过154个赞
知道答主
回答量:441
采纳率:0%
帮助的人:264万
展开全部
getchar();输入单个字符
gets();输入一串字符串

getche();//输入单个字符,不用输入回车确认,头文件:conio.h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
minhongliang
2010-06-25 · 超过12用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:0
展开全部
如果是输入字符串的话gets(); 字符getchar();
别的话没有可以替代的了。
不然就用文本输入
不要用标准输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91b22343a
2010-06-25 · TA获得超过589个赞
知道答主
回答量:96
采纳率:0%
帮助的人:90.7万
展开全部
#include "stdio.h"
main()
{char a[1];
gets(a); /*从键盘输入字符数组a*/
puts(a); /*输出a*/

这个只是限于字符数组。
我知道也只有这个了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式