当前位置:网站首页>STL tutorial 4- input / output stream and object serialization
STL tutorial 4- input / output stream and object serialization
2022-06-25 07:41:00 【Sleepy snail】
standard I/O= The standard input + standard output
file I/O= File input + File output
One 、 Standard I / O stream

cout Global object , Has been associated with the display 
cerr There is no buffer ,clog There are buffers ,cin and cout There are also buffers
cin.peek(); Peeping into the buffer , Does not take from the buffer
cin.putback() Use is to use the front get perhaps getline Function to read characters from the input stream ch Return to the input stream , Insert to current pointer position
cout<<flush()// Refresh buffer
cout.put(‘a’).put(‘a’);// Output a character and support chain programming
cout.write(“aaa”,strlen(“aaa”));
Format output
1、 The way member methods 
Code
void test06() {
int number = 10;
// The pattern of member methods
cout.unsetf(ios::dec);// Uninstall the default 10 Binary output mode
cout.setf(ios::oct);// Set to octal output
cout << number<<endl;
cout.setf(ios::showbase);// Show some hidden contents
cout << number<<endl;
cout.unsetf(ios::oct);// Unload octal
cout.setf(ios::hex);// Set to hexadecimal
cout << number << endl;
cout.width(10);// Set bit width
cout.fill('*');// Set content fill
cout << number << endl;
cout.setf(ios::left);// Set left alignment
cout << number << endl;
}
2、 Through the controller
Need to include header file #include 
int number2 = 10;
cout << hex // Set to 16 Base number
<< resetiosflags(ios::showbase)// Set the display symbol bit
<< setw(10)// Set the width to 10
<< setfill('$')// Set the padding to $
<<setiosflags(ios::left)
<< number2
<< endl;
Two 、 File operations
File read
Need to include header file #include < fstream >// File read and write
There are two ways to define file objects ,
1、ifstream ism(filePath,ios::in);
2、ifstream ism;
ism.open(filePath, ios::in);
const char* filePath = "C:\\Users\\admin\\Desktop\\source.txt";
ifstream ism(filePath,ios::in);// Open the file in read-only mode
// Or define an object , Open the file as a member of the object
/*ifstream ism; ism.open(filePath, ios::in);*/
// Here, the object must be overloaded
if (!ism) {
cout << " fail to open file " << endl;
}
// Reading documents Thanks to the establishment of the pipeline
char ch;
while ( ism.get(ch))
{
cout << ch;
}
// Finished closing files
ism.close();
File is written to
Defining the file write object is the same as defining the file read format
ofstream osm(targetPath, ios::out | ios::app); // have only out It's overlay mode , Add the back | ios::app It's the append mode
rearwards osm.put(ch); Add elements to it
void test07() {
const char* filePath = "C:\\Users\\admin\\Desktop\\source.txt";
const char* targetPath = "C:\\Users\\admin\\Desktop\\target.txt";
ifstream ism(filePath,ios::in);// Open the file in read-only mode
ofstream osm(targetPath, ios::out | ios::app); // have only out It's overlay mode , Plus the following is the append mode
// Or define an object , Open the file as a member of the object
/*ifstream ism; ism.open(filePath, ios::in);*/
// Here, the object must be overloaded
if (!ism) {
cout << " fail to open file " << endl;
}
// Reading documents Thanks to the establishment of the pipeline
char ch;
while ( ism.get(ch))
{
cout << ch;
osm.put(ch);
}
// Finished closing files
ism.close();
osm.close();
}
Binary mode read / write
Create a new one Person class take p1 and p2 Write to file p1 and p2 Is stored in binary form , The common text mode reading mentioned above is actually stored in binary form
Even garbled code is stored in binary form window Go to carriage return and line feed /r/n Two symbols are used to mark the end of the line linux Just wrap on as a newline /n sign
Read files in text mode , Will automatically change the /r/n Switch to /n, Writing a file will /n Switch to /r/n
But in linxu It is the same in both text mode and binary mode




summary
Files are stored in binary mode , Even newly created objects in memory are in binary form , Then you can write the object to the file , The difference between opening files in text mode and binary mode is ,window Go to carriage return and line feed /r/n Two symbols are used to mark the end of the line ,linux Just wrap on as a newline /n sign . Read files in text mode , Will automatically change the /r/n Switch to /n, Writing a file will /n Switch to /r/n, But in linux It is the same in both text mode and binary mode
边栏推荐
- 【批處理DOS-CMD命令-匯總和小結】-cmd擴展命令、擴展功能(cmd /e:on、cmd /e:off)
- Path planner based on time potential function in dynamic environment
- 无“米”,也能煮“饭”利用“点云智绘”反演机载LiDAR林下缺失地面点攻略
- 稳压二极管的原理,它有什么作用?
- [batch dos-cmd command - summary and summary] - file and directory operation commands (MD, RD, xcopy, dir, CD, set, move, copy, del, type, sort)
- 鸿蒙页面菜单的选择
- 国外LEAD域名邮箱获取途径
- 【UVM入门 ===> Episode_9 】~ 寄存器模型、寄存器模型的集成、寄存器模型的常规方法、寄存器模型的应用场景
- 数据可视化没有重点怎么办?
- [Introduction aux uvm== > Episode 9] ~ modèle de registre, intégration du modèle de registre, méthode conventionnelle du modèle de registre, scénario d'application du modèle de registre
猜你喜欢

基于地面点稀少的LiDAR点云的茂密森林蓄积量估算
![[batch dos-cmd command - summary and summary] - commands related to Internet access and network communication (Ping, Telnet, NSLOOKUP, ARP, tracert, ipconfig)](/img/9b/283d99adf10262c356d1a87ce01bc0.png)
[batch dos-cmd command - summary and summary] - commands related to Internet access and network communication (Ping, Telnet, NSLOOKUP, ARP, tracert, ipconfig)

【批处理DOS-CMD命令-汇总和小结】-外部命令-cmd下载命令、抓包命令(wget)

图扑软件数字孪生 3D 风电场,智慧风电之海上风电

Sichuan earth microelectronics high performance, high integration and low cost isolated 485 transceiver

What if there is no point in data visualization?

【批處理DOS-CMD命令-匯總和小結】-cmd擴展命令、擴展功能(cmd /e:on、cmd /e:off)

点云智绘在智慧工地中的应用

What common APIs are involved in thread state changes

Chuantu microelectronics breaks through the high-end isolator analog chip market with ca-is3062w
随机推荐
不同路径II[针对DFS的动态规划改进]
[introduction to UVM== > episode_9] ~ register model, integration of register model, general methods of register model, application scenarios of register model
Ns32f103c8t6 can perfectly replace stm32f103c8t6
函数模板_类模板
高考志愿填报,为啥专业最后考虑?
Cglib dynamic proxy
[Batch dos - cmd Command - Summary and Summary] - cmd extension Command, extension Function (CMD / E: on, CMD / E: off)
鸿蒙页面菜单的选择
13 `bs_ duixiang. Tag tag ` get a tag object
Notes: [open class] neural network and deep learning -- tensorflow2.0 actual combat [Chinese course]
Leetcode daily question - 515 Find the maximum value in each tree row
国外LEAD域名邮箱获取途径
Access to foreign lead domain name mailbox
对链表进行插入排序[dummy统一操作+断链核心--被动节点]
MySQL face Scripture eight part essay
【UVM入門 ===> Episode_9 】~ 寄存器模型、寄存器模型的集成、寄存器模型的常規方法、寄存器模型的應用場景
Harmony food menu interface
双三次差值bicubic
一“石”二“鸟”,PCA有效改善机载LiDAR林下地面点部分缺失的困局
高数基础_函数的奇偶性