考試大編輯整理C++編程知識
輸出主要由重載的左移操作符(<<)來完成,輸入主要由重載的右移操作符(>>)完成。
>>a表示將數(shù)據(jù)放入a對象中。
<
接下來我們繼續(xù)看一下C++風格的串流控制,C++引入了ostringstream、istringstream、stringstream這三個類,要使用他們創(chuàng)建對象就必須包含sstream.h頭文件。
istringstream類用于執(zhí)行C++風格的串流的輸入操作。
stringstream類同時可以支持C++風格的串流的輸入輸出操作。
strstream類同時可以支持C風格的串流的輸入輸出操作。
istringstream類是從istream(輸入流類)和stringstreambase(c++字符串流基類)派生而來,ostringstream是從ostream(輸出
流類)和stringstreambase(c++字符串流基類)派生而來,stringstream則是從iostream(輸入輸出流類)和和stringstreambase(
c++字符串流基類)派生而來。
istringstream是由一個string對象構(gòu)造而來,istringstream類從一個string對象讀取字符。
istringstream的構(gòu)造函數(shù)原形如下:
istringstream::istringstream(string str);
#include
#include
using namespace std;
int main()
{
istringstream istr;
istr.str(\"1 56.7\");
//上述兩個過程可以簡單寫成 istringstream istr(\"1 56.7\");
cout << istr.str()<
int a;
float b;
istr>>a;
cout<
istr>>b;
cout<
system(\"pause\");
}
上例中,構(gòu)造字符串流的時候,空格會成為字符串參數(shù)的內(nèi)部分界,例子中對a,b對象的輸入\"賦值\"操作證明了這一點,字符串的空格成為了整型數(shù)據(jù)與浮點型數(shù)據(jù)的分解點,利用分界獲取的方法我們事實上完成了字符串到整型對象與浮點型對象的拆分轉(zhuǎn)換過程 。
str()成員函數(shù)的使用可以讓istringstream對象返回一個string字符串(例如本例中的輸出操作(cout <
ostringstream同樣是由一個string對象構(gòu)造而來,ostringstream類向一個string插入字符。
ostringstream的構(gòu)造函數(shù)原形如下:
ostringstream::ostringstream(string str);
示例代碼如下:
#include
#include
#include
using namespace std;
int main()
{
ostringstream ostr;
//ostr.str(\"abc\");//如果構(gòu)造的時候設(shè)置了字符串參數(shù),那么增長操作的時候不會從結(jié)尾開始增加,而是修改原有數(shù)據(jù),超出的部分增長
ostr.put(’d’);
ostr.put(’e’);
輸出主要由重載的左移操作符(<<)來完成,輸入主要由重載的右移操作符(>>)完成。
>>a表示將數(shù)據(jù)放入a對象中。
<
接下來我們繼續(xù)看一下C++風格的串流控制,C++引入了ostringstream、istringstream、stringstream這三個類,要使用他們創(chuàng)建對象就必須包含sstream.h頭文件。
istringstream類用于執(zhí)行C++風格的串流的輸入操作。
stringstream類同時可以支持C++風格的串流的輸入輸出操作。
strstream類同時可以支持C風格的串流的輸入輸出操作。
istringstream類是從istream(輸入流類)和stringstreambase(c++字符串流基類)派生而來,ostringstream是從ostream(輸出
流類)和stringstreambase(c++字符串流基類)派生而來,stringstream則是從iostream(輸入輸出流類)和和stringstreambase(
c++字符串流基類)派生而來。
istringstream是由一個string對象構(gòu)造而來,istringstream類從一個string對象讀取字符。
istringstream的構(gòu)造函數(shù)原形如下:
istringstream::istringstream(string str);
#include
#include
using namespace std;
int main()
{
istringstream istr;
istr.str(\"1 56.7\");
//上述兩個過程可以簡單寫成 istringstream istr(\"1 56.7\");
cout << istr.str()<
int a;
float b;
istr>>a;
cout<
istr>>b;
cout<
system(\"pause\");
}
上例中,構(gòu)造字符串流的時候,空格會成為字符串參數(shù)的內(nèi)部分界,例子中對a,b對象的輸入\"賦值\"操作證明了這一點,字符串的空格成為了整型數(shù)據(jù)與浮點型數(shù)據(jù)的分解點,利用分界獲取的方法我們事實上完成了字符串到整型對象與浮點型對象的拆分轉(zhuǎn)換過程 。
str()成員函數(shù)的使用可以讓istringstream對象返回一個string字符串(例如本例中的輸出操作(cout <
ostringstream同樣是由一個string對象構(gòu)造而來,ostringstream類向一個string插入字符。
ostringstream的構(gòu)造函數(shù)原形如下:
ostringstream::ostringstream(string str);
示例代碼如下:
#include
#include
#include
using namespace std;
int main()
{
ostringstream ostr;
//ostr.str(\"abc\");//如果構(gòu)造的時候設(shè)置了字符串參數(shù),那么增長操作的時候不會從結(jié)尾開始增加,而是修改原有數(shù)據(jù),超出的部分增長
ostr.put(’d’);
ostr.put(’e’);