C++語言io流處理基本操作教程示例詳解

一、輸入輸出流對象

cout:標準輸出流

cerr:標準出湊  和cout(隻是用於如果是錯誤時要輸出的)

cin  :   標準輸入

流對象常用的處理函數

輸出字符 put()

輸入字符:get()

輸出字符串:write()

輸入字符串getline()

char ch;
	cin.get(ch);
	cout << ch<<endl;
	cout.put(ch);
	getchar();//用來消除回車的
	cout << endl;
	//字符串的輸入輸出
	char str[20] = "";//要初始化不然會出現輸出後最後無/0導致輸出燙燙燙...
	cin.getline(str, 20);//這裡更安全隻能輸入20個 多瞭隻取前面20個
	cout.write(str,20);

流控制字符

//就是以你制定的要求去輸出

要加上頭文件#incude<iomanip>

boolalpha:  bool類型輸出true或者false

setbase(n):設置整數為n的進制進行輸出 n隻能為8 16 10

    int num = 10;
	cout << setbase(8) << num << endl;
	cout << setbase(10) << num << endl;
	cout << setbase(16) << num << endl;

setfill(‘一個字符’) : 設置填充字符

setw(n):設置輸出的寬度

int num = 10;
cout<< setfill('s')<<setw(8) << num;

setprecision :設值有效位數包括整數

	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的成員函數

string.str()//獲取字符流對象中的字符串

string.str(const string&str)//改變字符流中的字符串

​stringstream s("sdflk");
	cout << s.str() << endl;
	s.str("ljsflk");
	s.str(string("sdljf"));
	//二種都可以 一個是構建一個string的無名對象傳字符串
	cout << s.str() << endl;
 
​

字符流的一些基本操作

將數字轉換為字符串
int num =1234;
cout<<to_string(num)<<endl//以字符串輸出num
stringstream stream;
stream << num;//將num流入stream這個類中
stream >> str;//stream流出到str這個字符串中
cout << str << endl;

同時使用一個流對象多次轉換的時候 必須使用clear清除同時也要二次流入在流出

不然是空流

stringstream stream;
	stream << num;//將num流入stream這個類中
	stream >> str;//stream流出到str這個字符串中
	cout << str << endl;
	string str2;
    //如果沒有clear函數就沒有把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文件不存在,創建文件

ios::binary二進制形式打開文件,默認方式是ascii碼方式打開

ios::nocreat不創建的方式

ios::noreplace 不替換

組合方式使用 

用的是位或

ios::in|ios::out 可讀寫

ios::out|ios::binary二進制寫的方式打開文件

判斷文件是不是打開成功(防禦性操作)

is_open()判斷打開是否成功

!文件對象  判斷打開文件是否成功

	fstream File;
	File.open("1.tex", ios::in | ios::out | ios::trunc);
	if (!File.is_open())
	{
		cout << "創建文件失敗" << endl;
	}
	if (!File)
	{
		cout << "創建文件失敗" << endl;
	}

 文件的讀寫操作

fstream Read("1.txt",ios::in);//讀的方式打開文件///要有這個文件
fstream Write("2.txt",ios::out|ios::trunc);
//寫的方式打開文件//沒有這個文件就創建一個
	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 文件當前

ios::end 結束位置

fstream read("1.txt", ios::in);
	read.seekg(5);//移動5個字節後
	char ch = read.get();//讀取5個位置後的第一個
	cout << ch << endl;

空格也算

文件的一些指向操作

	fstream read("1.txt", ios::in);
	read.seekg(5);//移動5個字節後
	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流處理基本操作示例詳解的詳細內容,更多關於C++語言io流處理的資料請關註WalkonNet其它相關文章!

推薦閱讀: