C/C++——输入输出特别注意点
常用概念注意点
printf(“%d”, “C++”); //输出宇符串”C++”的地址
实际上,在内存中为每一个数据流开辟一个内存缓冲区,用来存放流中的数据。当用cout和插入运算符“<<”向显示器输出数据时,先将这些数据送到程序中的输出缓冲区保存,直到缓冲区满了或遇到endl,就将缓冲区中的全部数据送到显示器显示出来。在输入时,从键盘输入的数据先放在键盘的缓冲区中,当按回车键时,键盘缓冲区中的数据输入到程序中的输入缓冲区,形成cin流,然后用提取运算符“ >>”从输入缓冲区中提取数据送给程序中的有关变量。总之,流是与内存缓冲区相对应的,或者说,缓冲区中的数据就是流。
cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插 人一个endl时,不论缓冲区是否已满,都立即输出流中所有数据,然后插入一个换行符, 并刷新流(清空缓冲区)。注意如果插人一个换行符”\n“(如下),则只输出和换行,而不刷新cout流(但并不是所有编译系统都体现出这一区别)。
cout<<a<<"\n";
cerr流对象是标准错误流,cerr流已被指定为与显示器关联。cerr的作用是向标准错误设备(standard error device)输出有关出错信息。cerr与标准输出流cout的作用和用法差不多。但有一点不同:cout流通常是传送到显示器输出,但也可以被重定向输出到磁盘文件,而cerr流中的信息只能在显示器输出。当调试程序时,往往不希望程序运行时的出错信息被送到其他文件,而要求在显示器上及时输出,这时应该用cerr。cerr流中的信息是用户根据需要指定的。
使用控制符控制输出格式
#include <iostream>
#include <iomanip>//不要忘记包含此头文件
using namespace std;
int main()
{int a;cout<<"input a:";cin>>a;cout<<"dec:"<<dec<<a<<endl; //以十进制形式输出整数cout<<"hex:"<<hex<<a<<endl; //以十六进制形式输出整数acout<<"oct:"<<setbase(8)<<a<<endl; //以八进制形式输出整数achar *pt="China"; //pt指向字符串"China"cout<<setw(10)<<pt<<endl; //指定域宽为,输出字符串cout<<setfill('*')<<setw(10)<<pt<<endl; //指定域宽,输出字符串,空白处以'*'填充double pi=22.0/7.0; //计算pi值//按指数形式输出,8位小数cout<<setiosflags(ios::scientific)<<setprecision(8);cout<<"pi="<<pi<<endl; //输出pi值cout<<"pi="<<setprecision(4)<<pi<<endl; //改为位小数cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl; //改为小数形式输出return 0;
}
运行结果如下:
input a:34↙(输入a的值)
dec:34 (十进制形式)
hex:22 (十六进制形式)
oct:42 (八进制形式)
China (域宽为)
****China (域宽为,空白处以’‘填充)
pi=3.14285714e+00 (指数形式输出,8位小数)
pi=3.1429e+00 (指数形式输出,4位小数)
pi=3.143 (小数形式输出,精度仍为)
用流对象的成员函数控制输出格式
#include <iostream>
using namespace std;
int main( )
{int a=21cout.setf(ios::showbase);//显示基数符号(0x或)cout<<"dec:"<<a<<endl; //默认以十进制形式输出acout.unsetf(ios::dec); //终止十进制的格式设置cout.setf(ios::hex); //设置以十六进制输出的状态cout<<"hex:"<<a<<endl; //以十六进制形式输出acout.unsetf(ios::hex); //终止十六进制的格式设置cout.setf(ios::oct); //设置以八进制输出的状态cout<<"oct:"<<a<<endl; //以八进制形式输出acout.unsetf(ios::oct);char *pt="China"; //pt指向字符串"China"cout.width(10); //指定域宽为cout<<pt<<endl; //输出字符串cout.width(10); //指定域宽为cout.fill('*'); //指定空白处以'*'填充cout<<pt<<endl; //输出字符串double pi=22.0/7.0; //输出pi值cout.setf(ios::scientific); //指定用科学记数法输出cout<<"pi="; //输出"pi="cout.width(14); //指定域宽为cout<<pi<<endl; //输出pi值cout.unsetf(ios::scientific); //终止科学记数法状态cout.setf(ios::fixed); //指定用定点形式输出cout.width(12); //指定域宽为cout.setf(ios::showpos); //正数输出“+”号cout.setf(ios::internal); //数符出现在左侧cout.precision(6); //保留位小数cout<<pi<<endl; //输出pi,注意数符“+”的位置return 0;
}
运行情况如下:
dec:21(十进制形式)
hex:0x15 (十六进制形式,以x开头)
oct:025 (八进制形式,以开头)
China (域宽为)
****China (域宽为,空白处以’‘填充)
pi=**3.142857e+00 (指数形式输出,域宽,默认位小数)
+***3.142857 (小数形式输出,精度为,最左侧输出数符“+”)
C/C++——输入输出特别注意点相关推荐
- [BZOJ] 1911 [Apio2010]特别行动队
题目描述 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场.出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如 (i, i + 1 ...
- linux脚本重定向到输入,linux shell输入输出重定向
新建一个文本文件包含所需要的脚本.举例,我会使用pico编辑器写一个脚本用来运行程序tar,带上必要的可选项可以用来解压从因特网下载下来的*.tar的文件(我好像总是记不住tar的所有参赛).我决定把 ...
- python eval 入门_Python学习笔记整理3之输入输出、python eval函数
Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网 浏览: 次 日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...
- python输入输出-python 输入输出 - 刘江的python教程
输入输出 阅读: 18476 评论:6 无论是从我们一开始的"hello world",还是前面章节的里各种例子,基本都是些"自说自话",展示类的代码片段.只有 ...
- ACM中Java输入输出
最初写算法时,是用Scanner的.因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时.发现Scanner远远不能满足条件.下面列出几种常用的输入输出方式.(输出统一用pr ...
- python输出变量代码_Python中变量的输入输出实例代码详解
1.变量的输入: input函数: input() input("请输入银行卡密码") password = input("请输入银行卡密码") 变量名 = i ...
- ACM的输入输出总结
关于ACM的输入输出(一) 一般来说ACM的现场赛会规定输入输出 或者是文件输入标准输出 也可能是文件输入文件输出 如果没有规定的话那么一般就是标准的输入输出了 那说一下输入输出的重定向 一般用下面两 ...
- Java学习笔记(7)——输入输出
1.File 不同的操作系统对于档案系统路径的设定各有差别,例如在Windows中,一个路径的表示法可能是: "c:\\Windows\\Fonts\\" 而在Linux下的路径设 ...
- Linux c学习--从标准输入输出看流和缓冲区
学习标准输入输出,我们都会遇到一个概念,流和缓冲区,但到底什么是流,什么是缓冲区呢? 书<C Primer Plus>上说,C程序处理一个流而不是直接处理文件.后面的解释十分抽象:『流(s ...
最新文章
- DataSnap如何监控Tcp/IP客户端的连接情况
- OPatch cannot find a valid oraInst.loc file to locate Central Inventory
- m40型工业机器人_工业机器人在汽车生产中有的应用范围
- java多线程基础视频_【No996】2020年最新 Java多线程编程核心基础视频课程
- 【线上分享】高性能视频推理引擎优化
- LeetCode之Excel Sheet Column Number
- EOSIO:EOSIO最新版1.4.0创建测试账户
- keytool生成证书_基于 TrueLicense 的项目证书验证
- 8篇文章系统梳理ARM开发中的文件类型
- Javascript:json数据根据某一个字段进行排序
- 物体检测算法:R-CNN,SSD,YOLO 动手学深度学习v2 pytorch
- 固态硬盘和机械硬盘的区别(7大区别,简单易懂)
- 真正的骨传导耳机有哪些品牌、性价比高的骨传导耳机排名
- 1.计算机指令系统,深入学习计算机指令系统唐书
- python打开网页被禁止_Python请求无法刮取403禁止的网页
- linux驱动文件目录
- 20210514面试题自我分类及总结(一)
- [ohasd(61322)]CRS-0715:Oracle High Availability Service has timed out waiting for init.ohasd to be..
- C#_图片存取数据库Winform
- 关于“参商两曜斗西东”中“参商”和“两曜”具体指什么
热门文章
- 爬虫模拟登陆手机验证码_爬虫入门到精通-headers的详细讲解(模拟登录知乎)...
- 虚函数和虚表指针的例子
- Linux ${}表达式详解
- 宝塔 + 百度BCC + centos + vue + 搭建nginx服务器
- 兰空图床Lsky Pro 免费开源图床网站程序v1.6.3
- WordPress5.7版本下载及更新内容
- addeventlistener事件参数_从Chrome源码看浏览器的事件机制
- python爬app_Python爬虫抓取手机APP的传输数据
- 指北针邮件工具 v1.5.6.1
- 福建二级计算机考试12,福建农林大学2016年12月计算机二级考试通知