博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符的读入问题
阅读量:4573 次
发布时间:2019-06-08

本文共 938 字,大约阅读时间需要 3 分钟。

  当遇到坑题时,读入字符称为了一件难事,看着程序写的有道理,可就是读不进去,读的字符有问题,感觉电脑傻掉了,当进行了无数次的debug之后,终于解决了答案,

面对这样的窘境,不如我们谈一谈读入字符的方法与经验吧!

对于读入字符,我们用getchar()或者scanf("%c", &a),当对于字符串,我们用scanf("%s", s),其中s是字符串,注意当读入单个字符时,&必须要加上,但是读入字符串时,&不

要加,所以写代码时候要注意这一点,如果读取的内容比较麻烦,例如“dafasdf dfasfewurpoiu ffe”这种带有空格或者换行的东西时,我们可以用getchar()与scanf("%c", &a)

解决,所以getchar()与scanf()读入单个字符时一定要注意空格,换行等东西,scanf("%s", s)读入时,遇到空格、Tab、换行时候停止。

给大家举一个坑人的例子吧!

#include 
int main() { int a, b, c; char d; scanf("%d%d%d", &a, &b, &c); scanf("%c", &d); printf("%c", d); return 0; }

样例输入:

1 2 3 4 5

样例输出是什么呢?

是不是 5 呢 ?

那你就错了,我往往会犯这样的问题,对字符的读入不加以精确的思考,然后盲目调试了半天,无果。。。

#include 
int main() { int a, b, c; char d; scanf("%d%d%d", &a, &b, &c); scanf("%c", &d); printf("%c", d); if(d == ' ') printf("..."); return 0; }

所以我们需要时刻记住printf与getchar()读入是多么的精细,这是我们时刻需要注意的问题。

 

转载于:https://www.cnblogs.com/yifeiWa/p/10335542.html

你可能感兴趣的文章
HashMap实现原理分析
查看>>
私有类方法
查看>>
java网络编程Socket通信详解
查看>>
为什么使用Nosql:Nosql和SQL的区别
查看>>
<转>DNS服务系列之二:DNS区域传送漏洞的安全案例
查看>>
LINUX中常用操作命令
查看>>
【android】动画效果研究(View)【1】
查看>>
(三)常用的数学函数
查看>>
生产信息集成分析平台(MIIAS V1.0) 概述
查看>>
学习进度——第十五周
查看>>
iOS开发UI篇—从代码的逐步优化看MVC
查看>>
简谈-网络爬虫的几种常见类型
查看>>
File对象目录列表器
查看>>
(K)ubuntu上将分区格式化成NTFS格式
查看>>
uva 12003 Array Transformer (大规模阵列)
查看>>
mysql5.7二进制包安装方式
查看>>
SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
查看>>
装饰者模式——Java设计模式
查看>>
39.递推练习: 菲波那契数列(2)
查看>>
排序精讲
查看>>