C++語言io流處理基本操作教程示例
一、輸入輸出流對象
cout:標(biāo)準(zhǔn)輸出流
cerr:標(biāo)準(zhǔn)出湊 和cout(只是用于如果是錯誤時要輸出的)
cin : 標(biāo)準(zhǔn)輸入
流對象常用的處理函數(shù)
輸出字符 put()
輸入字符:get()
輸出字符串:write()
輸入字符串getline()
char ch; cin.get(ch); cout << ch<<endl; cout.put(ch); getchar();//用來消除回車的 cout << endl; //字符串的輸入輸出 char str[20] = "";//要初始化不然會出現(xiàn)輸出后最后無/0導(dǎo)致輸出燙燙燙... cin.getline(str, 20);//這里更安全只能輸入20個 多了只取前面20個 cout.write(str,20);
流控制字符
//就是以你制定的要求去輸出
要加上頭文件#incude<iomanip>
boolalpha: bool類型輸出true或者false
setbase(n):設(shè)置整數(shù)為n的進(jìn)制進(jìn)行輸出 n只能為8 16 10
int num = 10;
cout << setbase(8) << num << endl;
cout << setbase(10) << num << endl;
cout << setbase(16) << num << endl;
setfill(‘一個字符') : 設(shè)置填充字符
setw(n):設(shè)置輸出的寬度
int num = 10;
cout<< setfill('s')<<setw(8) << num;
setprecision :設(shè)值有效位數(shù)包括整數(shù)
double num = 3.14159; cout << setprecision(4) << num << endl; cout << setprecision(4) << num * 10 << endl;
前面一個是3.141后面一個是31.41
setiosflags(ios::left)//對齊方式左對齊setiosflagsios(ios:right)右對齊
二、字符流操作
頭文件 #include<sstream>
字符流一般使用stringstream的對象
sstream
包括 isringstream ostingstream stringstream
一般用stringstream(可讀可寫)
stringstream的成員函數(shù)
string.str()//獲取字符流對象中的字符串
string.str(const string&str)//改變字符流中的字符串
stringstream s("sdflk");
cout << s.str() << endl;
s.str("ljsflk");
s.str(string("sdljf"));
//二種都可以 一個是構(gòu)建一個string的無名對象傳字符串
cout << s.str() << endl;
字符流的一些基本操作
將數(shù)字轉(zhuǎn)換為字符串 int num =1234; cout<<to_string(num)<<endl//以字符串輸出num stringstream stream; stream << num;//將num流入stream這個類中 stream >> str;//stream流出到str這個字符串中 cout << str << endl;
同時使用一個流對象多次轉(zhuǎn)換的時候 必須使用clear清除同時也要二次流入在流出
不然是空流
stringstream stream;
stream << num;//將num流入stream這個類中
stream >> str;//stream流出到str這個字符串中
cout << str << endl;
string str2;
//如果沒有clear函數(shù)就沒有把num流入到num2
stream.clear();
stream << num;
stream >> str2;
cout << str2 << endl;
三. 文件流流類
頭文件 #include<fstream>//ifstream 和ofstream
ofstream:打開文件,寫文件
ifstream:打開文件,讀操作
fstream:可讀可寫
mode:
ios::in 讀的方式打開文件
ios::out 寫的方式打開文件
ios::app追加的方式寫文件
ios::ate 在已有的文件,文件指針指向文件末尾
ios::trunc文件不存在,創(chuàng)建文件
ios::binary二進(jìn)制形式打開文件,默認(rèn)方式是ascii碼方式打開
ios::nocreat不創(chuàng)建的方式
ios::noreplace 不替換
組合方式使用
用的是位或
ios::in|ios::out 可讀寫
ios::out|ios::binary二進(jìn)制寫的方式打開文件
判斷文件是不是打開成功(防御性操作)
is_open()判斷打開是否成功
!文件對象 判斷打開文件是否成功
fstream File;
File.open("1.tex", ios::in | ios::out | ios::trunc);
if (!File.is_open())
{
cout << "創(chuàng)建文件失敗" << endl;
}
if (!File)
{
cout << "創(chuàng)建文件失敗" << endl;
}
文件的讀寫操作
fstream Read("1.txt",ios::in);//讀的方式打開文件///要有這個文件
fstream Write("2.txt",ios::out|ios::trunc);
//寫的方式打開文件//沒有這個文件就創(chuàng)建一個
while (1)
{
char ch;
Read.get(ch);
if (Read.eof())
{
break;
}
Write.put(ch);
}
Read.close();
Write.close();
四.文件指針定位
ifstream://讀
istream&seekg(longt int pos);
istream&seekg(long int pos,ios_base::seekdir begin)
ofstream://寫
ostream&seekp(long int pos):
ostream&seekp(long int pos,ios_base::seekdir begin);
//ios_base::seekdir//位置
ios::beg 文件開始
ios::cur 文件當(dāng)前
ios::end 結(jié)束位置
fstream read("1.txt", ios::in);
read.seekg(5);//移動5個字節(jié)后
char ch = read.get();//讀取5個位置后的第一個
cout << ch << endl;

空格也算
文件的一些指向操作
fstream read("1.txt", ios::in);
read.seekg(5);//移動5個字節(jié)后
char ch = read.get();//讀取5個位置后的第一個
cout << ch << endl;
read.seekg(0, ios::beg);
ch = read.get();
cout << ch << endl;
read.seekg(-5, ios::end);//最后位置前面5個
ch = read.get();
cout << ch << endl;
以上就是C++語言io流處理基本操作示例的詳細(xì)內(nèi)容,更多關(guān)于C++語言io流處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Qt結(jié)合OpenCV部署yolov5的實(shí)現(xiàn)
本文主要介紹了Qt結(jié)合OpenCV部署yolov5的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02

