C++写代码易忘常识

1.

scanf读入一个字符避免读入上一个换行符

scanf()读取单个字符的时候,如果上面的语句也有scanf, 可能会读入换行符,导致读取的字符不是自己写入的字符。

如果用scanf("%c",&ch),那么程序不会忽略为了输入而按下的回车键操作,而是认为回车键是后续操作而继续响应;

scanf(" %c", &ch)在%c之前空格会告诉scanf忽略前面的空行,而等待第一个非空行元素读入其中。这样就能避免问题的出现。

 

 

 

出现在输入输出函数中的%*c ,作用是在输入或输出时,跳过一个变量(包括数字和字符),例如:
void main()
{
int i=1,j=2,k=3;
printf("%d,%*d,%d\n",i,j,k,i);//遇到%*d,就把j跳过了,输出k,故后面应该放4个变量
}
程序的输出结果是1, 3,1 (如果出现跳过变量的情况,跳过的变量用空格代替,因此3前面多一个空格;
由于这种用法的实际意义不大,所以教材中一般不提,在程序中也很少见.

在整行复制粘贴样例时,当换行%c输入单个字符时注意前面的换行符,注意吸收,可用上面的方法%*c

这都是血的教训啊

 

2. 

   对于一个数组的名字切莫与自定义的变量类型相同,这样错第一不易改,第二涉及到自己的敲代码的风格。

3.scanf()与sscanf()

scanf()的输入速度比cin快的多,但scanf是C语言中的函数,不支持string对象,但支持字符数组 ,可通过转换实现输入

在C语言中,sscanf()函数可以将字符串按照你需要的方式分离出来,具体实现百度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会敲代码的小帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值