当前位置:网站首页>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
边栏推荐
- 基于地面点稀少的LiDAR点云的茂密森林蓄积量估算
- (tool class) quickly add time to code in source insight
- 对链表进行插入排序[dummy统一操作+断链核心--被动节点]
- 正版photoshop2022購買體驗經曆分享
- Ns32f103c8t6 can perfectly replace stm32f103c8t6
- [batch dos-cmd command - summary and summary] - commands related to Internet access and network communication (Ping, Telnet, NSLOOKUP, ARP, tracert, ipconfig)
- Runtime——methods成员变量,cache成员变量
- [Batch dos - cmd Command - Summary and Summary] - cmd extension Command, extension Function (CMD / E: on, CMD / E: off)
- 高考志愿填报,为啥专业最后考虑?
- SQL solve select basic statement
猜你喜欢
What is the difference between norflash and nandflash
Home environment monitoring system design (PC version) (mobile app version to be determined)
用动图讲解分布式 Raft
Advanced mathematics foundation_ Parity of functions
CPDA|数据分析师成长之路如何起步?
“空间转换”显著提升陡崖点云的地面点提取质量
Why "New Year's Eve", the original memory burst!
【批处理DOS-CMD命令-汇总和小结】-CMD窗口的设置与操作命令(cd、title、mode、color、pause、chcp、exit)
[batch dos-cmd command - summary and summary] - add comment command (REM or::)
Explain distributed raft with dynamic diagram
随机推荐
鸿蒙页面菜单的选择
Sichuan earth microelectronics ca-is1200 isolated operational amplifier for current detection
Pytorch遇到的坑:为什么模型训练时,L1loss损失无法下降?
Debian introduction
Introduction to Sichuan Tuwei ca-is3082w isolated rs-485/rs-422 transceiver
[batch dos-cmd command - summary and summary] - external command -cmd download command and packet capture command (WGet)
[batch dos-cmd command - summary and summary] - CMD extended command and function (CMD /e:on, CMD /e:off)
Research on 3D model retrieval method based on two channel attention residual network - Zhou Jie - paper notes
Orcad Schematic常用功能
TEMPEST HDMI泄漏接收 2
LeetCode 每日一题——515. 在每个树行中找最大值
C#入门教程
Sichuan Tuwei ca-if1051 can transceiver has passed aec-q100 grade 1 certification
海思3559 sample解析:vio
Several good weather plug-ins
Modular programming of digital light intensity sensor module gy-30 (main chip bh1750fvi) controlled by single chip microcomputer (under continuous updating)
正版photoshop2022购买体验经历分享
用动图讲解分布式 Raft
How comfortable it is to use Taijiquan to talk about distributed theory!
Cocos学习日记3——api获取节点、组件