iostream_test.cpp
#include <iostream>
using namespace std;#include <stdlib.h>#include <iomanip>void cin_test(){ /* if(-12) //0 为 false 非0[正数+负数] 为 true cout<<"ok"<<endl; else cout<<"error"<<endl; */ int i; //c语言中不能做错误判断 if(cin>>i) cout<<i<<endl; else{ cout<<"error"<<endl; cin.clear(); cin.ignore(); //清空缓冲区 }}void string_test(){ string s1="itao"; //运算符重载 string s2("love"); //构造函数 cout<<s2.c_str()<<'\t'<<s1.c_str()<<endl;}iostream继承层次
/*C++语言: 输出格式化*/void cout_test(){ int i=15; cout<<dec<<i<<endl; //十进制 15 cout<<hex<<i<<endl; //十六进制 f cout<<oct<<i<<endl; //八进制 17 /*需要引入 iomanip*/ cout<<setbase(16)<<i<<endl; //setbase(n) n为进制[16 10 8] cout<<setw(10)<<setfill('a')<<setbase(16)<<i<<"++++"<<endl; //aaaaaaaaaf++++ cout<<setw(10)<<setfill('a')<<setbase(16)<<setiosflags(ios::left)<<i<<"++++"<<endl; //faaaaaaaaa++++ //setw(int n) :填充宽度 //setfiell(char c): 填充字符 和 填充宽度 配合使用 //setiosflags(ios::left) //向左对齐 默认向右对齐 float f = 0.0141534; cout<<setprecision(3)<<f<<endl;//setprecision(int n)填充精度 0.0142 cout<<setiosflags(ios::fixed)<<f<<endl; //0.014 /* setiosflags(ios::fixed) 以固定的小数位输出 ios 是枚举 */ cout<<setiosflags(ios::scientific)<<f<<endl; //0.0142 /* setiosflags(ios::scientific) scientific:以科学计数法显示 */ cout<<resetiosflags(ios_base::_Fmtflags::fixed)<<i<<endl; /* */}输入输出流格式控制—流实现
输入输出流格式控制—流对象成员控制输出
输入输出流格式控制-综合案例
/*C语言: 输出 格式化*/void printf_test(){ float f = 0.0141534; printf("%+10.3f", f); printf("%s\n", "itao"); printf("%-10.3f", f); printf("%s\n", "itao"); /* 打印结果: +0.0142itao 0.0142 itao Press any key to continue 结论: %10.3f 10为填充 10 个空字符 .3表示 填充精度 +:表示右对齐 【默认】 -:表示左对齐 //printf("%010.3f", f); //10前面的0 表示 f 前面补 10 个 0 */}int int_to_string(){ int i=12; char j[3]; j[0]=i/10+48; j[1]=i%10+48; j[2]=0; printf("%s\n", j); printf("%c\n", 49); printf("%c\n", 50); //cout<<"Hello Wold"<<endl; return 0;}string_test.cpp
#include <iostream>#include <string>#include <fstream>using namespace std;void main(){ //关于string //1、 string直接相加与 operator= 赋值操作符 string a="qin "; string b="tang "; string c=a+b+"tao"; //2、采用cout直接输出 cout<<c<<endl; //3、字符串比较 cout<<(a>b)<<endl; //4、size和length 得到字符串的大小 cout<<c.length()<<endl; cout<<c.size()<<endl; //5、operator[] 取第几个运算 相当于数组 cout<<c[0]<<endl; //6、insert 插入字符 c.insert(0, "love "); cout<<c<<endl; //7、 append 增加字符 c.append(" mm"); cout<<c<<endl; c+="ww"; //运算符重载 cout<<c<<endl; //8、 replace 替换字符 c.replace(1, 2, "hh"); //1 为起始位置 2 为偏移量 cout<<c<<endl; //9、截取hh 与 find string d=c.substr(c.find('h'), 3); /* c.find('h') 找到字符h在string中的第一个位置 3 截取的长度 */ cout<<d<<endl; //10、operator>> 从输入流中读入字符串 string e; cin>>e; //注意:输入的字符串有空格 从第一个空格后面的舍弃 cout<<e<<endl; //11、从文件流中读取 ifstream ifs; ifs.open("D:\\Junit\\test1.txt"); if(!ifs){ cerr<<"error open............"; } ifs>>e; //只会读取 文件的 第一行 并且 数据后面有空格 的后面部分舍弃 cout<<e<<endl;}
file_test.cpp
#include <iostream>#include <fstream>#include <string>using namespace std;/*判断文件打开 是否成功*/void isOpenFile(){ ifstream ifs; //输入文件流 ifs.open("D:\\Junit\\test4.txt"); if(!ifs){ //判断文件打开 是否成功 cerr<<"error open.........."<<endl; //cerr 输出错误信息 }else{ cout<<"ok open.........."<<endl; }}void read_line_text(){ ifstream ifs; //输入文件流 ifs.open("D:\\Junit\\test1.txt"); /* char i[20]; while(1){ //ifs>>i; //读文件 if(!ifs.getline(i, 20)) //读取 行 break; cout<<i<<endl; } */ string i; while(1){ //ifs>>i; //读文件 if(!getline(ifs, i)) //读取 行 break; cout<<i<<endl; } cout<<endl; ifs.close();}void read_char_text(){ ifstream ifs; //输入文件流 ifs.open("D:\\Junit\\test1.txt"); char i; int j; while(1){ //ifs>>i; //读文件 ifs.get(i); j=ifs.eof(); if(ifs.eof()) //判断是否读到文件末尾 break; cout<<i; } cout<<endl; ifs.close();}void write_char_text(){ ofstream ofs; //输出文件流 ofs.open("D:\\Junit\\test1.txt"); char i; while(1){ cin>>i; //从屏幕读 if(i=='#') break; ofs<<i; //写文件 } ofs.close();}
C语言读写文本文件与C++对照
C语言读写二进制件与C++对照