主要探索:
1 标准I/O
2 文件I/O
3 窜I/O 对内存中指定空间进行输入输出
首先标准I/O
输出格式控制
具体示例:
#include <iostream>
#include <iomanip> //格式控制符在其中定义
using namespace std;
//通过控制符控制输出格式
void control( int a){
cout<<"10进制"<<dec<<a<<endl
<<"16进制"<<hex<<a<<endl
<<"8 进制"<<setbase(8)<<a<<endl;
char *pt="China";
cout<<setw(10)<<pt<<endl
<<setfill('*')<<setw(10)<<pt<<endl; //制定宽度 和填充
double pi=22.0/7.0;
cout<<setiosflags(ios::scientific)<<setprecision(8);//指数形式输出8位小数
cout<<"pi="<<pi<<endl;
cout<<"pi="<<setprecision(4)<<pi<<endl //改为位小数
<<"pi="<<setiosflags(ios::fixed)<<pi<<endl;
}
//通过对象控制输出格式
void obj( int a){
//10进制显示
cout.setf(ios::showbase); //显示基数符号(ox或)
cout<<"10进制"<<a<<endl; //默认10进制显示
cout.unsetf(ios::dec); //终止10进制的格式显示
//16进制的显示
cout.setf(ios::hex); //设置16进制显示
cout<<"16进制"<<a<<endl;
cout.unsetf(ios::hex);
//8进制显示
cout.setf(ios::oct);
cout<<"8 进制"<<a<<endl;
cout.unsetf(ios::oct);
char *pt="China";
//指定域宽
cout.width(10);
cout<<pt<<endl;
//指定空白处用*填充
cout.fill('*');
cout<<pt<<endl;
double pi=22.0/7.0;
cout<<"pi=";
//指定以科学计数法输出
cout.setf(ios::scientific);
cout.width(14);
cout<<pi<<endl;
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 ;
}
int main(){
int a;
cin>>a;
control(a);
obj(a);
return 0;
}
具体运行结果:
几个标准I/O有关函数
#include <iostream>
#include <iomanip> //格式控制符在其中定义
using namespace std;
int main(){
char _char='S';
cout.put(_char);
cout<<endl;
putchar(_char); //cout.put(_char)作用相同
cout<<endl;
//标准输入流 流提取符通常跳过输入流里面空格 tab键 换行等空白符 只有输入完数据后按回车键,数据才被送入键盘缓冲区,形成流
/*
//cin.get()不带参数
int _num;
while((_num=cin.get())!=EOF){
cout.put(_num);
}
*/
/*
//cin.get()带一个参数参数
char _test;
while(cin.get(_test)){
cout.put(_test);
}
*/
/*
//cin.get()带多个个参数参数
char ch[20];
cin.get(ch,10,'\\n');
cout<<ch<<endl;
*/
/*
//getline()使用示例
char ch[20];
cout<<"enter a string "<<endl; // i like C++./i study hard
cin>>ch;
cout<<"the first is :"<<ch<<endl;//i
cin.getline(ch,20,'/');
cout<<"the second:"<<ch<<endl; //like C++.
cin.getline(ch,20 );
cout<<"the thirst:"<<ch<<endl; //i study hard
*/
return 0;
}
文件I/O
文件中数据组织形式氛围ASCII和二进制文件。
对ascii文件操作
具体示例:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
//将数据输入文件
int a[10];
ofstream outfile("test.txt",ios::out); //建立文件流
if(!outfile){
cerr<<"open error"<<endl;
exit(1);
}
cout<<"enter 10 int num:"<<endl;
for(int indexLoop=0;indexLoop<10;indexLoop++){
cin>>a[indexLoop];
outfile<<a[indexLoop]<<" "; //向文件写入数据 文件以前内容被覆盖 不是将数据输出到屏幕,而是文件
}
// outfile1<<str; //这时只能输入一个字符
outfile.close();
//将数据从文件输出
ifstream infile("test.txt",ios::in);
if(!infile){
cerr<<"open error!"<<endl;
exit(1);
}
int b[10];
for(int IndexLoop=0;IndexLoop<10;IndexLoop++){
infile>>b[IndexLoop];//不是通过屏幕进行数据输入,而是文件,
cout<<" "<<b[IndexLoop];
}
infile.close();
return 0;
}
运行结果:
对二进制文件具体示例:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
//将数据输入文件
int a[10];
//ofstream outfile("test.txt",ios::out); //建立文件流
ofstream outfile("test.dat",ios::binary); //建立文件流
if(!outfile){
cerr<<"open error"<<endl;
exit(1);
}
cout<<"enter 10 int num:"<<endl;
for(int indexLoop=0;indexLoop<10;indexLoop++){
cin>>a[indexLoop];
outfile.write((char *)&a[indexLoop],sizeof(int));
// outfile<<a[indexLoop]<<" "; //向文件写入数据 文件以前内容被覆盖 不是将数据输出到屏幕,而是文件
}
// outfile1<<str; //这时只能输入一个字符
outfile.close();
//将数据从文件输出
//ifstream infile("test.txt",ios::in);
ifstream infile("test.dat",ios::binary);
if(!infile){
cerr<<"open error!"<<endl;
exit(1);
}
int b[10];
for(int IndexLoop=0;IndexLoop<10;IndexLoop++){
//infile>>b[IndexLoop];//不是通过屏幕进行数据输入,而是文件,
infile.read((char *)&b[IndexLoop],sizeof(int));
cout<<" "<<b[IndexLoop];
}
infile.close();
return 0;
}
运行结果:
字符窜流
#include <iostream>
#include <strstream>
using namespace std;
int main(){
char a[20]="hello,world";
char b[20];
//字符串流关联的不是文件,不需要打开和关闭文件
ostrstream strout(b,sizeof(b)); //建立输出字符串流对象 第一个参数和数组c建立关联 第二个参数一般和数组长度相等
cout<<sizeof(a)<<endl;
for(int indexLoop=0;indexLoop<sizeof(a);indexLoop++){
strout<<a[indexLoop];
cout<<a[indexLoop];
}
cout<<endl;
strout<<ends;//ends 是c++ I/O 操作符,插入一个'\\0'
cout<<"array:"<<endl<<b<<endl;
char _test[20]="hello,world!";
char _instr[20];
istrstream strin(_test,sizeof(_test)); //建立输入流对象,并与字符数组关联
for(int index=0;index<sizeof(_test);index++){
strin>>_instr[index];
}
for(int i=0;i<sizeof(_instr);i++){
cout<<_instr[i]<<" ";
}
cout<<endl;
return 0;
}
运行结果:
分享到:
相关推荐
实验七 C++的I/O流(验证性)实验报告 doc 格式
C++ I/O流课件C++ I/O流课件 很不错的哦
介绍了 C++的 I/O( 输入输出 )问题,本文结构清晰,讲解简单易懂,对 C++ 的流模型作为细致的分析和讲解, 并介绍了 IO 流类中的各种成员函数,对于输出部分介绍了 cout 流, put 和 write 函数,介绍了 4 种控制...
c++ I/O流的常用控制符 C++常用特殊字符 便于查找 很方便的小文档
C++高级程序设计实验十二模板类的构造& C++的I/O流类库 1.理解和应用类模板和函数模板; 2.理解C++输入输出流类库; 3.掌握ios类中用于控制输入输出成员函数的使用; 4.掌握操纵符格式控制的使用; 5.掌握用户...
前言 第1章 C++语言概述 第2章 数据类型和表达式 第3章 预处理和语句 第4章 函数和作用域 第5章 类和对象(一) 第6章 类和对象(二) 第7章 继承性和派生类 第8章...C++的I/O流库
应用篇通过PC与PC、PC与单片机、PC与智能仪器、PC与PLC、PC与GSM短信模块、PC与远程I/O模块等典型应用实例,详细介绍了C/C++语言利用MSComm控件、API函数实现串口通信的程序设计方法。每个实例的设计任务同时采用C++...
1 C++语言特点 2 面向对象程序设计概述 3 类和对象 4 派生类与继承 5 多态性 6 模板 7 C++的I/O流 8 面向对象系统开发基础
本书根据计算机专业C++语言程序设计课程的教学大纲编写,全书共分10章,分别介绍C++语言概述、类和对象、引用、友元、运算符重载、模板、继承和派生、多态性和虚函数、C++的I/O流库和异常处理。每章由基本知识点和...
基于流的 I/O 同步的输出 (C++20) I/O 操纵符 本地化库 正则表达式库 (C++11) basic_regex − 算法 原子操作库 (C++11) atomic − atomic_flag atomic_ref (C++20) 线程支持库 (C++11) 文件系统库 (C++17)
C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出...
文档包含大量的C++的练习题,并且有答案。包含的内容有c++基本概念、函数、类与对象、类与对象的高级操作、运算符重载、继承与派生、多态性、异常处理与模板、C++的I/O流库。
fast_io 是一个 C++20 输入/输出库,可提供出色的速度,旨在取代常用的库。它是一个仅标头库,并在 MIT 许可证下获得许可...fast_io是用C++20概念来实现的I/O库,用于取代iostream和stdio.h,比流和stdio.h至少快10倍。
通过本章学习,应理解I/O流、流类与流类体系的概念,掌握流的输入/输出控制格式。了解C++有关文件的概念及文件的使用方法,理解文件流类体系结构,掌握实现文件操作的成员函数的使用方法,学会文本文件的打开、读/...
应用篇通过PC与PC、PC与单片机、PC与智能仪器、PC与PLC、PC与GSM短信模块、PC与远程I/O模块等典型应用实例,详细介绍了C/C++语言利用MSComm控件、API函数实现串口通信的程序设计方法。每个实例的设计任务同时采用C++...
键盘输入与屏幕输出 C++中通过输入/输出流来实现标准输入/输出操作。 流是与I/O设备相关联的数据通信对象 输入操作通过流cin来实现 输出操作通过流cout来实现
此文件非常适合c++初学者,可以用来查找c++I/O流操作函数,标准模板库用法,string用法等,非常实用
9.1 I/O流的概念和流类库的结构 51 9.2标准I/O流 53 9.2.1标准输入流 55 9.2.2标准输出流 59 9.3文件I/O 66 9.3.1文件流类和文件流对象 66 9.3.2C++文件的打开与关闭 67 9.3.3C++对ASCII文件的读写操作 69 9.3.4 C++...
C++课程实验指导书 目 录 第一部分 VC++开发环境 1 一、Visual C++6.0开发环境简介 1 二、控制台应用程序的创建 5 三、程序调试 9 第二部分 C++实验项目 14 实验一 基本数据类型与输入输出 14 ...实验十七 I/O流 87
输入输出流 掌握C++输入/输出流(I/O流)的基本概念; 能够在输入/输出中进行基本的格式控制; 掌握文件的I/O操作。