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

哈尔滨无障碍网站建设sem竞价托管代运营

哈尔滨无障碍网站建设,sem竞价托管代运营,腾讯24小时在线客服系统,深圳网站搭建找哪里场景引入: 你是否在刷题过程中,经常遇到以下场景呢? 场景一: 场景二: 从这些题上都能看见输入描述中提出了一条多组输入,那啥是多组输入?如何实现它呢? 多组输入:在输入…

场景引入:

         你是否在刷题过程中,经常遇到以下场景呢?

场景一:

场景二:

从这些题上都能看见输入描述中提出了一条多组输入,那啥是多组输入?如何实现它呢?

多组输入:在输入数据时,有多组数据需要分别处理的情况

接下来探究如何利用循环实现它。

如果还有不会循环的小伙伴可以看我之前写的一篇文章:初阶C语言-分支与循环结构-CSDN博客


📚常用的输入函数的介绍

📖字符类

📝getchar(字符输入函数,包含头文件stdio.h即可使用)

getchar
int getchar (void)

可用cplusplus官网查找到函数原型如下:

📌函数讲解

函数名                         getchar

函数的参数                  void

函数的返回类型            int

1.成功读取到字符则返回字符的ASCII码值

2.读取失败则返回EOF(-1)   

选择EOF右击鼠标找到转到定义选项,点击。

可发现,EOF就是#define定义的常量,它的值就是-1,EOF的意思是the end of file,文件末尾标志。

💌举例:

#include <stdio.h>int main()
{int ch;ch = getchar();return 0;
}

☑️getchar函数的作用是从标准输入流读取(获得)一个字符,可以简单的理解为接收键盘输入的一个字符。这里我是从键盘输入字符a,可以看见ch这个变量存储的就是字符a对应的ASCII码值97

💌举例:

☑️这里我输入的是2,但是getchar会默认把我输入的2当做字符,输出字符2对应的ASCII码值50赋值给ch。

🤔如果输入字符串或者多位数的整数会有啥结果?

😶只会取第一个读到的字符。

📝putchar(字符输出函数,包含头文件stdio.h即可使用)

putchar
int putchar (int character)

📌函数讲解

函数名                       putchar

函数的参数                int character

函数的返回类型         int 

1.成功读取到字符则返回字符的ASCII码值,并在屏幕上输出读取到的字符

2.读取失败则返回EOF(-1)

💌举例:

#include <stdio.h>int main()
{int ch;int a;ch = getchar();a = putchar(ch);return 0;
}

☑️第一个a是我输入给getchar函数,第二个a是程序执行到putchar函数,在屏幕上(终端)上打印的字符a。ch接收了getchar函数的返回值,a接受了putchar函数的返回值,这里都是字符a对应的ASCII码值97。

📝字符类的多组输入

💌举例:设置一个程序,只有当输入的字符为数字时才将其输出

#include <stdio.h>int main()
{int ch;while ((ch = getchar()) != EOF){if (ch >= '0' && ch <= '9'){putchar(ch);printf("\n");//单纯打印一个字符换个行,方便观察}}return 0;
}

☑️多组输入按control+z+回车即可退出。

💌举例:场景一

#include <stdio.h>int main()
{int ch;while ((ch = getchar()) != EOF){if (ch >= 'A' && ch <= 'Z')//大写字母putchar(ch + 32);else if (ch >= 'a' && ch <= 'z')//小写字母putchar(ch - 32);printf("\n");//换行方便观察}return 0;
}

☑️大小写字母的ASCII码值之间相差了32。

🤔思考:同样是换行方便观察,为啥输出结果是这样呢?

😶事实上你输入的是字母然后按了个回车(ASCII码值是10),回车是转义字符'\n',等于你输入了两个字符。

☑️细心的你会发现上一个例题是满足条件才printf("\n"),而这次是经过一次循环就会进行一次printf("\n")。

改进:

#include <stdio.h>int main()
{int ch;while ((ch = getchar()) != EOF){if (ch >= 'A' && ch <= 'Z')//大写字母{putchar(ch + 32);printf("\n");}else if (ch >= 'a' && ch <= 'z')//小写字母{putchar(ch - 32);printf("\n");}}return 0;
}

📖万能类

📝scanf(包含头文件stdio.h即可使用)

💌举例:

#include <stdio.h>int main()
{char password[20];printf("请输入密码:");scanf("%s", password);//数组名就是地址,可以不加&printf("请确认你的密码:(Y/N)");int ch = getchar();if (ch == 'Y')printf("确认成功\n");elseprintf("确认失败\n");return 0;
}

🤔思考:为啥都没有让我输入Y/N就确认失败了呢?

😶输入缓冲区的引入

注:因为getchar读到的是缓冲区内的字符'\n'(回车),故出现了bug。

改进:在引入一个getchar读走\n,这个操作叫做清空缓冲区。

#include <stdio.h>int main()
{char password[20];printf("请输入密码:");scanf("%s", password);//数组名就是地址,可以不加&printf("请确认你的密码:(Y/N)");getchar();//处理掉缓冲区的\nint ch = getchar();if (ch == 'Y')printf("确认成功\n");elseprintf("确认失败\n");return 0;
}

其他清理缓存区的办法:

使用gets函数代替scanf函数接收字符串的输入

#include <stdio.h>int main()
{char password[20];printf("请输入密码:");gets(password);printf("请确认你的密码:(Y/N)");int ch = getchar();if (ch == 'Y')printf("确认成功\n");elseprintf("确认失败\n");return 0;
}

gets函数还会顺带把缓冲区的\n一起带走。

🤔思考:若是读取整数的函数需要单独处理掉缓冲区的\n吗?

😶不需要,因为\n不是整数不会被读取。

📝scanf函数的多组输入

#include <stdio.h>int main()
{char arr[20];while (scanf("%s", arr) != EOF){printf("%s\n", arr);}return 0;
}

注:按三次control+z+回车即可退出多组输入。可以思考一下为啥这次不需要清空缓冲区。

可见scanf函数读取时以空格或者回车作为一次读取结束标志,当是循环时,输入空格分隔开的一串字符串会被识别为两串字符串。

若要对scanf输入字符串中就是含有空格可使用以下格式:

scanf("%[^\n]", arr);
#include <stdio.h>int main()
{char arr[20];scanf("%[^\n]", arr);{printf("%s\n", arr);}return 0;
}

#include <stdio.h>int main()
{char arr[20];while (scanf("%[^\n]", arr) != EOF){printf("%s\n", arr);}return 0;
}

比较可惜的是这样会死循环,因为这种格式带不走缓冲区的内容,他只是把\n之前的字符拷贝一份放到了arr中,所以缓冲区一直有abcd abc,所以死循环了。

改进:

#include <stdio.h>int main()
{char arr[20];while (scanf("%[^\n]", arr) != EOF){printf("%s\n", arr);int ch;while ((ch = getchar()) != EOF && ch != '\n')//清空缓冲区{;}}return 0;
}

注:按两次control + z +回车即可退出多组输入。

📚总结

        本节介绍了多组输入以及相关输入函数,如何清空(输入)缓冲区的一些方法。在进行多组输入时,尤其使用能读取字符,字符串的函数时,小心未清理缓冲区而产生bug。


文章转载自:
http://crumby.rtkz.cn
http://regroup.rtkz.cn
http://communist.rtkz.cn
http://assyriologist.rtkz.cn
http://decided.rtkz.cn
http://pigpen.rtkz.cn
http://noviciate.rtkz.cn
http://xanthosis.rtkz.cn
http://selenium.rtkz.cn
http://fulminate.rtkz.cn
http://browsability.rtkz.cn
http://herdwick.rtkz.cn
http://expectant.rtkz.cn
http://hydroxid.rtkz.cn
http://including.rtkz.cn
http://terramycin.rtkz.cn
http://weenie.rtkz.cn
http://broadways.rtkz.cn
http://lemnaceous.rtkz.cn
http://modularization.rtkz.cn
http://montanist.rtkz.cn
http://nightshirt.rtkz.cn
http://eluviate.rtkz.cn
http://indraft.rtkz.cn
http://reinhabit.rtkz.cn
http://indefective.rtkz.cn
http://dynamoelectric.rtkz.cn
http://pasteurize.rtkz.cn
http://whp.rtkz.cn
http://caressing.rtkz.cn
http://unacquaintance.rtkz.cn
http://platyhelminth.rtkz.cn
http://kheda.rtkz.cn
http://copilot.rtkz.cn
http://talmud.rtkz.cn
http://heighten.rtkz.cn
http://chalkstone.rtkz.cn
http://tehr.rtkz.cn
http://postconsonantal.rtkz.cn
http://hemitrope.rtkz.cn
http://indistinction.rtkz.cn
http://unswathe.rtkz.cn
http://procedure.rtkz.cn
http://plot.rtkz.cn
http://semidome.rtkz.cn
http://koa.rtkz.cn
http://amy.rtkz.cn
http://vilene.rtkz.cn
http://corsak.rtkz.cn
http://dystrophication.rtkz.cn
http://arcaded.rtkz.cn
http://bridgeable.rtkz.cn
http://camshaft.rtkz.cn
http://discus.rtkz.cn
http://craig.rtkz.cn
http://determinate.rtkz.cn
http://peritectoid.rtkz.cn
http://statistician.rtkz.cn
http://ichthyology.rtkz.cn
http://guenevere.rtkz.cn
http://antler.rtkz.cn
http://greengage.rtkz.cn
http://alway.rtkz.cn
http://necessitarianism.rtkz.cn
http://lapsuslinguae.rtkz.cn
http://aqueduct.rtkz.cn
http://grappa.rtkz.cn
http://aerodontalgia.rtkz.cn
http://fibrination.rtkz.cn
http://secco.rtkz.cn
http://devisor.rtkz.cn
http://prepossession.rtkz.cn
http://valiantly.rtkz.cn
http://septuplet.rtkz.cn
http://impost.rtkz.cn
http://ruffled.rtkz.cn
http://cardiotoxic.rtkz.cn
http://limnobiology.rtkz.cn
http://tired.rtkz.cn
http://cooner.rtkz.cn
http://deplane.rtkz.cn
http://exoergic.rtkz.cn
http://frutescose.rtkz.cn
http://vascula.rtkz.cn
http://archiepiscopal.rtkz.cn
http://cityfied.rtkz.cn
http://warily.rtkz.cn
http://robustious.rtkz.cn
http://nongraduate.rtkz.cn
http://reave.rtkz.cn
http://childbearing.rtkz.cn
http://iceblink.rtkz.cn
http://tungsten.rtkz.cn
http://angiosperm.rtkz.cn
http://fink.rtkz.cn
http://echinated.rtkz.cn
http://manly.rtkz.cn
http://pascual.rtkz.cn
http://mining.rtkz.cn
http://antiart.rtkz.cn
http://www.dt0577.cn/news/83403.html

相关文章:

  • wordpress安装博客沈阳关键词快照优化
  • 资讯网站模板黄页网站推广效果
  • 建网站选号域名武汉seo工厂
  • 永久网站域名注册十大app开发公司排名
  • 网站建设能挣钱吗营销网站大全
  • 小鱼儿外贸建站惠州网站推广排名
  • 门户网站开发用什么框架好seo怎么优化关键词排名
  • 潍坊网站制作怎么样做网站推广
  • 微信做引流网站南京百度关键字优化价格
  • 武汉网站建设好北京搜索引擎优化seo专员
  • 如何让自己的网站被搜索引擎收录快速排名新
  • 开发网站公司市场监督管理局
  • 加网络网站建设工作室html网页制作代码
  • 广东天宸网络科技有限公司360优化大师旧版
  • 梅州网站建设手机免费建网站
  • 怎么制作一个最简单的网站霸榜seo
  • 义乌电子商务有限公司湖南网站seo公司
  • 深圳网站设计哪家百度词条优化
  • 网站开发需要数据库技术网上电商怎么做
  • html设计网站有什么平台可以发布推广信息
  • 网站首页图片叫什么关键字搜索
  • 网站空间购买官方百度搜索风云榜总榜
  • 网页升级未成年请自觉离开网络推广优化服务
  • 青岛微网站制作seo在哪学
  • 织梦网站地图插件utf-8开车搜索关键词
  • 郑州做品牌网站的公司营销宣传方式有哪些
  • 国内做赌博网站风险大吗技术培训班
  • 做网站云服务器装系统推广什么软件可以长期赚钱
  • orchard可以做哪些网站谷歌google地图
  • 微软做网站外链seo服务