当前位置: 首页 > news >正文

对网页美工的认识/seo优化操作

对网页美工的认识,seo优化操作,义乌网站,做百度网站每年的费用多少合适获取终端输入字符串scanf,gets,fgets 获取终端中输入字符串,我们常用getchar(),scanf(),gets(),和fgets()函数实现,这里简单汇总一下: ​ scanf() 函数可以获取到终端字符串,但是不能识别到空格字符,遇到空格会终止,…

获取终端输入字符串scanf,gets,fgets

获取终端中输入字符串,我们常用getchar(),scanf(),gets(),和fgets()函数实现,这里简单汇总一下:

​ scanf() 函数可以获取到终端字符串,但是不能识别到空格字符,遇到空格会终止,空格后面的字符串会在缓冲区中,下次获取时会继续用。

​ gets()函数以回车字符进行标识,获取用户输入字符串以回车为终止符。

​ scanf和gets函数都是不安全的,如果目标字符串缓冲区无法存储我们输入的字符串,会导致段错误

​ fgets()函数限定了获取字符串的长度,如果输入字符串过多,依然可以只获取限定长度的字符串,剩下的字符串还在输入缓冲区中。

测试demo以及输入测试描述:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>//scanf输入遇到空格会当成结束符
//gets是遇到回车结束 fgets其实对gets的一些完善扩展
int main()
{
//scanf 读取终端内容时  遇到空格会终止
// 终止后剩余的结果其实还在终端缓冲区中,会在后面读取缓冲区继续生效char data[20];printf("please test of scanf :\n");scanf("%s", data);printf("scanf func get data is [%s] \n", data);memset(data, 0, 20);printf("please test of space scanf :\n");scanf("%s", data);printf("scanf func get data is [%s] \n", data);memset(data, 0, 20);fflush(stdin);	//可以刷新缓冲区 一般用在读数据后没读完//gets可以读取换行前的所有字符,但是gets是不安全的,如无法保证长度越界printf("please test of gets \n");gets(data);printf("gets func get data is [%s] \n", data);memset(data, 0, 20);printf("please test of space gets :\n");gets(data);printf("gets func get data is [%s] \n", data);memset(data, 0, 20);
//使用fgets函数  对gets函数的扩展,限定了读取数据的长度printf("plese test of fgets : \n");fgets(data,  20, stdin); //字符串地址  字符串长度   读入的文件   printf("fgets func get data is : [%s]", data);memset(data, 0, 20);printf("please test of len out of 20 fgets:\n");fgets(data,  20, stdin);printf("fgets func get data is : [%s] \n", data);memset(data, 0, 20);fflush(stdin);return 0;
}/********************************************
输出的结果:
hlp@ubuntu:~/com_port$ ./in
please test of scanf :   ==>scanf正常输入
12334
scanf func get data is [12334]  ==》打印获取终端的输入
please test of space scanf :	==》scanf输入带空格的字符串
123 1231 
scanf func get data is [123]    ==》发现只打印了空格前的字符串
please test of gets 
gets func get data is [ 1231 ] 	==》没有经过手动输入, get函数直接获取到终端缓冲区中已经存在的字符串
please test of space gets :		==》get函数测试带空格的字符串
123 123 412
gets func get data is [123 123 412]  ==》get函数能打印带空格的字符串,终结符以回车为准
plese test of fgets : 			==》测试fget函数获取,在长度内,发现获取到终端内的回车字符
123123 123 1
fgets func get data is : [123123 123 1
]please test of len out of 20 fgets:	==》如果超过fgets函数参数限制的长度,获取到输入的固定长度字符19个字符
12312 1231231 12312 123123 12312123
fgets func get data is : [12312 1231231 12312]
**************************************************//********************************************
可以看出,输入字符串过长,scanf和get函数如果获取长度过多,都会引发段错误
hlp@ubuntu:~/com_port$ ./in
please test of scanf :
1
scanf func get data is [1] 
please test of space scanf :
1
scanf func get data is [1] 
please test of gets 
gets func get data is [] 
please test of space gets :
111111111111111111111111111111111111111111
gets func get data is [111111111111111111111111111111111111111111] 
plese test of fgets : 
12
fgets func get data is : [12
]please test of len out of 20 fgets:
12
fgets func get data is : [12
*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)hlp@ubuntu:~/com_port$ ./in
please test of scanf :
111111111111111111111111111111111111111
scanf func get data is [111111111111111111111111111111111111111] 
please test of space scanf :
11111111111111111111111111111111111
scanf func get data is [11111111111111111111111111111111111] 
please test of gets 
gets func get data is [] 
please test of space gets :
1
gets func get data is [1] 
plese test of fgets : 
1
fgets func get data is : [1
]please test of len out of 20 fgets:
1
fgets func get data is : [1
*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)**************************************************//********************************************
可以看出,输入字符串过长,如果用fget函数进行获取,会在限制长度内获取,下次继续获取缓冲区中剩余字段
hlp@ubuntu:~/com_port$ ./in
please test of scanf :
1
scanf func get data is [1] 
please test of space scanf :
1
scanf func get data is [1] 
please test of gets 
gets func get data is [] 
please test of space gets :
1
gets func get data is [1] 
plese test of fgets : 
1111111111111111111111111111111111111111111111111111111111111111111111111
fgets func get data is : [1111111111111111111]
please test of len out of 20 fgets:
fgets func get data is : [1111111111111111111]
**************************************************/
http://www.jmfq.cn/news/5071987.html

相关文章:

  • 企业网站用什么程序好/营业推广方式
  • 龙岗网站建设深圳信科/软文编辑器
  • 网页制作基础教程直播/成都官网seo厂家
  • 相册网站模板/郑州网络营销公司
  • 最好的网站统计/seo到底是做什么的
  • 百度网址提交/seo教程自学网
  • 小广告怎么做/绍兴seo排名外包
  • 创可贴app海报制作网站/哪些网站可以发广告
  • 恩做网站动态页面好/seo代理计费系统
  • 网站代理怎么做/企业门户网站
  • 广州做企业网站找哪家公司好/网站自动推广软件
  • 重庆网站建设qq群/大一html网页制作作业简单
  • 购物网站 wordpress 英文模板/智能优化网站
  • 网站用花生壳nas做存储/小区推广最有效的方式
  • 北京好网站制作公司哪家好/西安百度公司官网
  • 17zwd一起做网站广州/网络营销推广方案策划与实施
  • 本地高端网站建设信息大全/crm软件
  • 电脑记事本做复杂网站/廊坊百度快照优化排名
  • 网页设计与网站建设 pdf/网站标题seo外包优化
  • 自己做网站怎么编代码/it培训机构靠谱吗
  • 自己做b2b平台网站建设/百度网盟
  • 曲阳网站制作公司/最新免费网站收录提交入口
  • 网站建设怎样把网页连接起来/做了5天游戏推广被抓了
  • 汕头网站推广系统/深圳做网站的公司有哪些
  • 网站开发一般流程/如何提升百度关键词排名
  • 小程序代理需要多少钱/自己怎么做关键词优化
  • 网站建设需要什么资料/百度应用商店下载安装
  • 沈阳网站建设费用/seo学徒招聘
  • 自己做服务器和网站/企业网络营销案例
  • 怎么做代购彩票网站/2021最火关键词