博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
依旧是输入输出(存字符矩阵,空格,换行)
阅读量:5861 次
发布时间:2019-06-19

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

PAT倒福的题就因为输入输出……第一个样例过了,后面的根本就是存储错误?

今天主要针对怎样输入字符矩阵、字符串、空格换行进行叙述。

scanf是格式化输入,printf是格式化输出。 cin是输入流,cout是输出流。效率稍低,但书写简便。cin的实时性较差,因为它使用了缓冲区,一般情况下满了才刷新的。 对于字符:cin的输入忽略空格和回车。scanf("%c",&i)等价于i = getchar(),换行符和回车都会被读入。 一、对于输入字符串矩阵来说,一般会用到二重循环,对于回车符的吸收问题,理论上讲getchar()可以使用,但不知道为什么,做题的时候会多吸收字符,这里推荐使用另外一种方法:

    

  具体原因还不知道,只是知道可以这么用。   cin只是吸收单个字符,不会吸收回车或者空格,但如果每行的字符是连续输入,则建议是使用getline(cin,数组名)或是cin.getline(数组名);   但由于是流输入,效率会差;号要考虑缓冲区是否已满的情况,会用到cin.ignore(); 二、输入有空格的字符:   scanf("%c ",&c);或是cin>>c;   cin虽然方便但效率差,建议使用scanf; 对于一般数据的输入,没有太大问题,有问题继续添加。下面是其他人遇到的问题,目前我还没遇到。

笔试的时候经常遇到突然string s;cin>>s;

有的时候编译会错误,不知道为什么。

 {

………………………………………………………………………………………………………………………………

今天在练习枚举类型的时候,也遇到这样一个问题。

enum weekday{Monday,Tuesday} day;

cin>>day;//报错

scanf("%d",&day);//正常

周纯洁的书上也都是用scanf;看样子scanf和printf不能随便丢弃啊。毕竟是标准输入输出流,没有缓存区

scanf是格式化输入,printf是格式化输出。 cin是输入流,cout是输出流。效率稍低,但书写简便。  格式化输出效率比较高,但是写代码麻烦。  流输出操作效率稍低,但书写简便。  cout之所以效率低,正如一楼所说,是先把要输出的东西存入缓冲区,再输出,导致效率降低。  缓冲区比较抽象,举个例子吧:  曾经就遇到过这样的情况(类似的), int i; cout<<'a'; cin>>i; cout<<'b'; 运行结果什么都没看到输出,输入一个整型比如3再按回车后ab同时显示出来了。 但是这样的情况并不是经常发生,是在一些比较大型的工程中偶尔出现,原因是字符a先到了缓冲区,但是没输出,等输入了i,b进入 缓冲区后再一并输出的。 流输入也是差不多的。
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… } 对于scanf的具体用法: scanf 后面的参数,就是要 写变量的 地址。所以 int a,b; 就要 用 &a,&b 形式来调用 scanf. 可是,如果是字符串,char s[10]; scanf("%s",s); 参数 s 就 不要 &. 因为 s 就是 地址形式。 http://bbs.bccn.net/thread-236258-1-1.html   这里有非常详细的讲解。 未完待续……

转载于:https://www.cnblogs.com/lyqf/p/8805106.html

你可能感兴趣的文章
使用ConcurrentHashMap一定线程安全?
查看>>
【Laravel-海贼王系列】第十七章,Laravel 那些骚操作
查看>>
长春净月初二化学作业辅导班效果如何/哪里的老师教学好?
查看>>
webpack基础配置
查看>>
php之正则表达式函数总结
查看>>
Web前端-Ajax基础技术(下)
查看>>
Java面试题-数据库篇十一
查看>>
支配vue框架初阶项目之博客网站-注册页面-单选按钮
查看>>
Java 发送qq邮件
查看>>
技术工坊|解密区块链DApp的代码逻辑,从请求到数据存储都要经历什么?(上海)...
查看>>
小tips-一种移动端模拟实现返回拦截的方案
查看>>
刨根问底区块链 —— 基础篇
查看>>
带css样式的console.log() ,进来了解一下
查看>>
云服务器具体如何操作
查看>>
3 jQuery学习笔记第三节 Jq的设计思想之写法
查看>>
swift GCD 的一些高级用法
查看>>
【拒绝一问就懵】之你多少要懂点内存回收机制
查看>>
【深入浅出express】- express入门01
查看>>
Vue核心部分实现,总共分三步,第一步.....
查看>>
http调用docker API创建容器
查看>>