ZKX's LAB

fgets键盘输入 关于C语言中字符串处理函数fgets的用法

2021-04-26知识3

c语言使用fgets从键盘获取一个字符串,保存在某字符数组中 fgets函数是从文件中回去一个字符串,从键盘获取使用gets,如gets(a),a是char数组名。网页 微信 知乎 图片 视频 医疗 科学 汉语 。? 2021SOGOU.COM 京ICP证050897号

C语言里为什么fgets很少用? 因为fgets函数只能输入字符串,而Scanf()能输入多种类型的数据,加上一般的C语言教材往往重视讲授原理,而对程序健壮性、异常处理等考虑不多,所以一般资料很少提及fgets函数。scanf在获取用户输入的字符串时,遇到空格、制表符即终止,并在结尾自动加上”\\0″。gets在获取用户输入字符串时,遇到空格、制表符不会终止,在结尾也会自动加上“\\0”。由于scanf和gets这两个函数不对输入的长度进行核查,即使用户输入超过了规定的buffer容量,函数也会接受输入,造成缓冲区溢出,程序崩溃。所以建议实际使用时最好用fgets函数来替代。附上fgets函数的有关说明:fgets函数原型:char*fgets(char*buf,int bufsize,FILE*stream);参数:1.*buf:字符型指针,指向用来存储所得数据的地址。2.bufsize:整型数据,指明存储数据的大小。即每次最多读取bufsize-1个字符(第bufsize个字符赋'\\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。3.*stream:文件结构体指针,将要读取的文件流。如为stdin,则从。

C语言:从键盘输入10个字符串,找出一个最长的字符串。 #includemain(){char ss[1024],s[1024];ss 放最长的,s 放刚读入的int L,i;L 存最长的长度printf(\"enter string 1\\n\");fgets(ss,1024,stdin);键盘输入第一个,不用比较,它现在最长L=strlen(ss);长度for(i=1;i;i+){printf(\"enter string%d\\n\",i+1);fgets(s,1024,stdin);键盘输入第i个,if(strlen(s)>;L){ L=strlen(s);strcpy(ss,s);}/长度大于以前的,则更新 最长 字符串内容}printf(\"\\n%s\\n\",ss);打出结果}

#fgets键盘输入

随机阅读

qrcode
访问手机版