cout輸出格式控制

轉載自:http://blog.csdn.net/wolinxuebin/article/details/7490113



cout輸出格式控制

如果要在輸出流中加入格式控制符則要加載頭文件:#include <iomanip>
  這裏面iomanip的作用比較多:
  主要是對cin,cout之類的一些操縱運算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制頭文件,就像C裏面的格式化輸出一樣.以下是一些常見的控制函數的:


dec 置基數爲10 相當於"%d"


hex 置基數爲16 相當於"%X"




oct 置基數爲8 相當於"%o"      //作用永久


sample:


cout<<12<<hex<<12<<oct<<12<<12;output 12c1414




setprecision(n) 設顯示小數精度爲n位 //作用永久


sample:


setf(ios:fixed);


cout<<setprecision(2)<<2.345<<endl; ouput 2.34 //注意先用setf(ios::fixed);否則結果自己測試下
      


setw(n) 設域寬爲n個字符 //作用臨時
  這個控制符的意思是保證輸出寬度爲n。如:
  cout<<setw(3)<<1<<setw(3)<<10<<setw(3)<<100; 輸出結果爲
  1 10100 (默認是右對齊)當輸出長度大於3時(<<1000),setw(3)不起作用。


setfill(c) 設填充字符爲c


  setioflags(ios::fixed) 固定的浮點顯示
  setioflags(ios::scientific) 指數表示  


sample cout<<setiosflags(ios::fixed)<<setprecision(2)<<2.345<<endl; output 2.34
  setiosflags(ios::left) 左對齊
  setiosflags(ios::right) 右對齊
  setiosflags(ios::skipws) 忽略前導空白
  setiosflags(ios::uppercase) 16進制數大寫輸出
  setiosflags(ios::lowercase) 16進制小寫輸出
  setiosflags(ios::showpoint) 強制顯示小數點
  setiosflags(ios::showpos) 強制顯示符號


sample: cout<<setiosflags(ios::uppercase)<<hex<<12<<15<<endl; output CF


cout<<setioflags(ios::showpoint)<<x<<endl;若float x=1,則output 1.000000 不使用直接輸出1


cout<<setiosflags(ios::showpos)<<1<<endl;output +1
//使用標準C++編寫 
#include <iostream> 
#include <iomanip>//精度設置必須包括的頭文件 


using namespace std; 


int main() 

double a=3.5; 
int b=10; 
//方法一:操作符函數的格式控制 
//cout.precision(2),設置精度爲2 
//right:設置左對齊;fixed:控制浮點型輸出格式; 
//setw(5):設置輸出位寬爲5 


cout<<right<<fixed<<setw(5)<<setfill('0') 
<<setprecision(2)<<a<<endl; //輸出結果爲03.50 


//方法二:IOS類成員函數的格式控制 
cout.precision(4); //setprecision(4),設置精度爲4 
cout<<a<<endl; //輸出結果爲3.5000 


//setfill('0'):設置填充字符爲'0' 
//static_cast<double>(b):將整型的b, 
//生成一個雙精度浮點型副本進行操作,而不改變其值和類型 
cout<<fixed<<setfill('0')<<setprecision(2) 
<<fixed<<static_cast<double>(b)<<endl;//輸出10.00 
return 0; 
}




方法很多種啦,我們可以這樣寫:  
/*一個使用填充,寬度,對齊方式的例子*/  
#include <iostream.h>  
void main()  
{  
    cout<<"第一章"<<endl;  
    cout<<"    ";  
    cout.setf(ios::left);        //設置對齊方式爲left  
    cout.width(7);              //設置寬度爲7,不足用空格填充  
    cout<<"1.1";  
    cout<<"什麼是C語言";  
    cout.unsetf(ios::left);      //取消對齊方式,用缺省right方式  
    cout.fill(’.’);              //設置填充方式  
    cout.width(30);              //設置寬度,只對下條輸出有用  
    cout<<1<<endl;  
    cout<<"    ";                
    cout.width(7);              //設置寬度  
    cout.setf(ios::left);        //設置對齊方式爲left  
    cout.fill(’ ’);              //設置填充,缺省爲空格  
    cout<<"1.11";  
    cout<<"C語言的歷史";  
    cout.unsetf(ios::left);      //取消對齊方式  
    cout.fill(’.’);  
    cout.width(30);  
    cout<<58<<endl;  
    cout.fill(’ ’);  
    cout<<"第二章"<<endl;  
}  
    我們多次設置了寬度,爲的是使我們的間距能一致,也使用了對齊方式,爲的是使我們的數據能對齊顯示,看起來美觀。我們還使用了填充方式。我們下面用操縱算子來實現也是可以的。  
/*一個使用填充,寬度,對齊方式的例子*/  
#include <iomanip.h>  
void main()  
{  
    cout<<"第一章"<<endl;  
    cout<<"    ";  
    cout<<setiosflags(ios::left)<<setw(7);        //設置寬度爲7,left對齊方式  
    cout<<"1.1";  
    cout<<"什麼是C語言";  
    cout<<resetiosflags(ios::left);                //取消對齊方式  
    cout<<setfill(’.’)<<setw(30)<<1<<endl;        //寬度爲30,填充爲’.’輸出  
    cout<<setfill(’ ’);                            //恢復填充爲空格  
    cout<<"    ";  
    cout<<setw(7)<<setiosflags(ios::left);        //設置寬度爲7,left對齊方式  
    cout<<"1.11";  
    cout<<"C語言的歷史";  
    cout<<resetiosflags(ios::left);                //取消對齊方式  
    cout<<setfill(’.’)<<setw(30)<<58<<endl;        //寬度爲30,填充爲’.’輸出      
    cout<<setfill(’ ’)<<"第二章"<<endl;  
}  
    我們輸出了同樣的效果,不過依我的性格,我更喜歡用操縱算子來進行格式化輸出。最後我們看看浮點數的格式輸出,如下例:  
/*關於浮點數的格式*/  
#include <iostream.h>  
void main()  
{  
    float f=2.0/3.0,f1=0.000000001,f2=-9.9;  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;      //正常輸出  
    cout.setf(ios::showpos);              //強制在正數前加+號  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout.unsetf(ios::showpos);            //取消正數前加+號  
    cout.setf(ios::showpoint);            //強制顯示小數點後的無效0  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout.unsetf(ios::showpoint);          //取消顯示小數點後的無效0  
    cout.setf(ios::scientific);          //科學記數法  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout.unsetf(ios::scientific);        //取消科學記數法  
    cout.setf(ios::fixed);                //按點輸出顯示  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout.unsetf(ios::fixed);              //取消按點輸出顯示  
    cout.precision(18);                  //精度爲18,正常爲6  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout.precision(6);                    //精度恢復爲6  
}  
    同樣,我們也一樣能用操縱算子實現同樣的功能:  
/*關於浮點數的格式*/  
#include <iomanip.h>  
void main()  
{  
    float f=2.0/3.0,f1=0.000000001,f2=-9.9;  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;      //正常輸出  
    cout<<setiosflags(ios::showpos);      //強制在正數前加+號  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout<<resetiosflags(ios::showpos);    //取消正數前加+號  
    cout<<setiosflags(ios::showpoint);    //強制顯示小數點後的無效0  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout<<resetiosflags(ios::showpoint); //取消顯示小數點後的無效0  
    cout<<setiosflags(ios::scientific);  //科學記數法  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout<<resetiosflags(ios::scientific); //取消科學記數法  
    cout<<setiosflags(ios::fixed);        //按點輸出顯示  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout<<resetiosflags(ios::fixed);      //取消按點輸出顯示  
    cout<<setprecision(18);              //精度爲18,正常爲6  
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
    cout<<setprecision(6);                //精度恢復爲6  
}  
  在c/c++系統中除了標準的輸入輸出外,還提供了更多的輸入函數。這寫函數主要有getch(),getche(),  
getchar 
(),cin.get(),putch(),putchar(),cout.put(),gets(),cin.getline(),puts()。另外 
還有些爲了讓緩衝區不影響程序的正確操作的緩衝去的操作,如:cin.putback(),fflush(stdin),cout.flush().我們 
做一下簡單的說明。  
    1、getch()和getche(),非緩衝式輸入,從鍵盤讀入一個字符。getch()讀入字符不顯示。有conio.h支持。  
    2、cin.get(),getchar(),緩衝式輸入,從鍵盤讀入一個字符,並顯示。getchar()由stdio.h支持,cin.get()由iostream.h支持。  
    3、putch()和putchar(),非緩衝式輸出,輸出一個字符到顯示器。putch()由conio.h支持,putchar()由stdio.h支持。  
    4、cout.put(),緩衝式輸出,輸出一個字符到顯示器。由iostream.h支持。  
    5、gets()和cin.geline(),緩衝式輸入,讀入一字符串(包括空格,不包括最後的回車),gets()由stdio.h支持,cin.getline()由iostream.h支持。  
    6、puts(),非緩衝輸出,輸出一個字符串,由stdio.h支持。  
    7、cin.putback(),把一個字符送回輸入緩衝區。  
    8、fflush(stdin),清除輸入緩衝區操作。無法清除cin.get()等帶來的操作。  
    9、cout.flush(),清楚輸出緩衝區。  
    在這裏我們稍微說一下輸入/輸出緩衝區,這是爲了減少程序訪問io帶來中斷而設的一段空間。當程序滿足某個刷新條件時,那就將清理緩衝區。具體條件爲:  
    1、輸入緩衝區  
a,程序要求輸入時,按下了回車鍵。  
b,遇到程序結束。  
c,遇到下一條輸入語句。  
d,遇到清除緩衝區操作  
e,緩衝區溢出  
    2、輸出緩衝區  
a,輸出緩衝區溢出  
b,遇到下一條輸入語句  
c,使用刷新緩衝區迫使清除  
d,程序結束。  
    緩衝區操作有時會帶來程序的不正確的輸入,如前面說的scanf(),在連續輸入的時候,會把一個回車賦給下一個字符變量。我們操作的時候一定要注意。
使用標記進行格式設置的setf()函數
格式化的各個方面,
要使用各種格式只需把該位設置爲1 即可,setf 函數就是用來設置標記的成員函數,使用該函數需要一個或兩個在c++
中定義的位的常量值作爲參數,這些位的常量值在下面介紹。


1、c++在ios類中定義了位的常量值,這些值如下:
a、ios::boolalpha使布爾值用字符表示
b、iso::showbase顯示進制的基數表示即16進位以0x開始,8進制以0開始,
c、ios::showpoint顯示末尾的小數點,
d、、ios::uppercase使16進制的a~f用大寫表示,同時0x還有科學計數的字母e都用大寫表示,
e、ios::showpos在十進制的正數前面顯示符號+


注意這些常量都是ios 類中定義的,所以使用他們時需要加上ios::限定符


比如:cout.setf(ios::showbase);注意使用
setf函數時需要用對象來調用,因爲它是流類的成員函數。


2、使用帶兩個參數的setf()函數:setf()函數不但可以帶有一個參數,還可以帶有兩個參數。帶兩個參數的setf()函數的
第一個參數爲要設置的位的值,第二個參數爲要清除的位的值。


參數說明如圖所示
在C++中有一個受保護的數據成員,其中的各位分別控制着
3、用setf()函數設置的格式需要使用對應的unsetf()函數來恢復以前的設置,比如setf(ios::boolalpha)將使布爾值以字
符的形式使用,如再使用unsetf(ios::boolapha)則又將使布爾值以數字的形式使用。
帶兩個參數的setf函數可以使用第1 個參數爲0 的unsetf 函數來恢復其默認值,比如unsetf(0,ios::basefield)或直接使用unsetf(ios::basefield),注
意在visual C++中不能使用第一個參數爲0 的unsetf 函數,只能使用第二種形式。
 
格式輸出
在輸出數據時,爲簡便起見,往往不指定輸出的格式,由系統根據數據的類型採取默認的格式,但有時希望數據按指定的格式輸出,如要求以下六進制或八進制形式輸出一個整數,對輸出的小數只保留兩位小數等;有兩種方法可以達到此目的。一種是使用控制符;另一種是使用流對象的有關成員函數。分別敘述如下: 


1、 用控制符控制輸出格式














應當注意:


這些控制符是在頭文件iomanip中定義的,因而程序中應當包含頭文件iomanip。通過下面的例子可以瞭解使用它們的方法,


[indent]例2 用控制符控制輸出格式



#include <iostream>
#include <iomanip> //不要忘記包含此頭文件




using namespace std;
int main()
{
int a;
cout<<"input a:";
cin>>a;
cout<<"dec:"<<dec<<a<<endl; //以上進制形式輸出整數
cout<<"hex:"<<hex<<a<<endl; //以十六進制形式輸出整數a
cout<<"oct:"<<setbase(8)<<a<<endl;//以八進制形式輸出整數a
char *pt="China"; 
//pt指向字符串”China” 
cout<<setw(10)<<pt<<endl; //指定域寬爲10,輸出字符串
cout<<setfill('*')<<setw(10)<<pt<<endl;//指定域寬10,輸出字符串,空白處以“*”填充
double pi=22.0/7.0; //計算pi值
cout<<setiosflags(ios::scientific)<<setprecision(8);//按指數形式輸出,8位小數
cout<<"pi="<<pi<<endl; //輸出pi值
cout<<"pi="<<setprecision(4)<<pi<<endl;//改爲4位小數
cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl;//改爲小數形式輸出
return 0; }


運行結果如下





inputa:34 (輸入a的值)
dec:34 (十進制形式)
hex:22 (十六進制形)
oct:42 (八進制形式)
China (域寬爲10)
***** China (域寬爲10,空白處以'*'填充)
pi=3.14285714e+00 (指數形式輸出,8位小數)
pi=3.1429e+00) (指數形式輸小,4位小數)
pi=3.143 (小數形式輸出,梢度仍爲4)




2.用流對象的成員函數控制輸出格式








除了可以用控制符來控制輸出格式外,還可以通過調用流對象COUt中用於控制輸出格式的成員函數來控制輸出格式。用於控制輸出格式的常用的成員函數見表4。






流成員函數setf和控制符setiosflags括號中的參數表示格式狀態,它是通過格式標誌來指定的。格式標誌在類ios中被定義爲枚舉值。因此在引用這些格式標誌時要在前面加上類名ios和域運算符“::”。格式標誌見表5。










[/indent][indent]例3 用流控制成員函數輸出數據。




#include <iostream>
using namespace std;
int main()


{
int a=21;
cout.setf(ios::showbase); //設置輸出時的基數符號
cout<<"dec:"<<a<<endl; //默認以十進制形式輸出a
cout.unsetf(ios::dec); //終止十進制的格式設置
cout.setf(ios::hex); //設置以十六進制輸出的狀態
cout<<"hex:"<<a<<endl; //以十六進制形式輸出a
cout.unsetf(ios::hex); //終止十六進制的格式設置
cout.setf(ios::oct); //設置以八進制輸出的狀態
cout<<"oct:"<<a<<endl; //以八進制形式輸出a
cout.unsetf(ios::oct); //終止以八進制的輸出格式設置
char *pt="China"; //pt指向字符串”china”
cout.width(10); //指定域寬爲10
cout<<pt<<endl; //輸出字符串
cout.width(10); //指定域寬爲10
cout.fill('*'); //指定空白處以'*'填充
cout<<pt<<endl; //輸出字符串
double pi=22.0/7.0; //計算pi值
cout.setf(ios::scientific);//指定用科學記數法輸出
cout<<"pi="; //輸出"pi="
cout.width(14); //指定域寬爲14
cout<<pi<<endl; //輸出"pi值
cout.unsetf(ios::scientific); //終止科學記數法狀態
cout.setf(ios::fixed); //指定用定點形式輸出
cout.width(12); //指定域寬爲12 
cout.setf(ios::showpos); //在輸出正數時顯示“+”號
cout.setf(ios::internal); //數符出現在左側
cout.precision(6); //保留6位小數
cout<<pi<<endl; //輸出pi,注意數符“+”的位置
return 0;} 


運行情況如下:






dec:21 (十進制形式)
hex:Oxl5 (十六進制形式,以0x開頭)
oct:025 (八進制形式,以O開頭)
China (域寬爲10)
*****china (域寬爲10,空白處以'*'填充)
pi=**3.142857e+00 (指數形式輸出,域寬14,默認6位小數)
****3.142857 (小數形式輸㈩,精度爲6,最左側輸出數符“+”)




說明:








1、成員函數width(n)和控制符setw(n)只對其後的第一個輸出項有效。如果要求在輸出數據時都按指定的同一域寬n輸出,不能只調用一次width(n),而必須在輸出每一項前都調用一次width(n)。




2、在表5中的輸出格式狀態分爲5組,每一組中同時只能選用一種(例如,dec,hex和oct中只能選一,它們是互相排斥的),在用成員函數setf和控制符setiosflags設置輸出格式狀態後,如果想改設置爲同組的另一狀態,應當調用成員函數unsetf(對應於成員函數setf)或resetiosflags(對應於控制符setiosflags),先終止原來設置的狀態。然後再設置其他狀態。


同理,程序倒數第8行的unsetf函數的調用也是不可缺少的。讀者不妨上機試一試。




3、用setf函數設置格式狀態時,可以包含兩個或多個格式標誌,由於這些格式標誌在iOS類中被定義爲枚舉值,每一個格式標誌以一個二進位代表,因此可以用“位或”運算符“I”組合多個格式標誌




4、可以看到:對輸出格式的控制,既可以用控制符(如例2),也可以用cout流的有關成員函數(如例3),二者的作用是相同的。控制符是在頭文件iomanip中定義的,因此用控制符時,必須包含iomanip頭文件。cout流的成員函數是在頭文件iostream中定義的,因此只需包含頭文件iostream,不必包含iomanip。許多程序人員感到使用控制符方便簡單,可以在一個cout輸出語句中連續使用多種控制符。




5、關於輸山格式的控制,在使用中還會遇到一些細節問題,不可能在這裏全部涉及。在遇到問題時,請查閱專門手冊或上機試驗一下即可解決。
用於char類型的字符數組的輸入流類的成員函數
使用輸入流類的成員函數進行輸入:
注意:以下這些成員函數都只能用於char類型的字符數組,而不能用於string類型的對象。




1、使用get()函數輸入單個字符:輸入單個字符的get()函數都是類istream 中的成員函數,調用他們需要使用類的對象
來調用,該函數有兩個原型,即get(char &ch)和get(void)。
a、get(char &ch)函數:該函數返回調用對象的引用,這裏要注意該函數的參數類型必須要是char類型的,不能是int
型變量,比如cin.get(a)其中參數a 只能是char 類型,不能是int 型,如果是int 型則會出現錯誤。該函數可以連
續輸入,即cin.get(a).get(a);
b、get(void)函數:該函數反回int型的值,調用該get函數時不需要使用參數。該函數不能連續輸入,比如cin.get().get()
就是錯誤的。
c、兩個get函數都接收輸入的單個字符,且不跳過空白符號和回車換行符。如果輸入了2個以上的字符,則以後的
字符保存在輸入流中,留給下一次輸入。比如有char a; cin.get(a);cout<<a; cin.get(a); cout<<a;如果輸入a並按回車
的話,則第二次的get調用將不會再提示輸入字符,而是接受了第一次輸入的單個字符a後面的回車換行了,所
以最後只輸入一次,並輸出a 再換行。同樣如果連續輸入兩個字符比如ad 則第一個字符a 賦給第一個變量,第
二個字符d賦給第二個變量,同樣不會出現提示兩次輸入的情況,這不是我們所預期希望的效果。同樣get()函數
有同樣的笑果,即char a; a=cin.get(); cout<<a; a=cin.get(); cout<<a;如果輸入a並按回車,有和get(char &ch)同樣的
笑果。注意使用>>操作符輸入時將忽略掉空格和回車換行符等符號,而get函數則不會。解決上述問題的方法是
在第二次輸入前使用ignore()函數讀取並丟棄剩下的字符,這樣就會提示兩次輸入。




2、使用get和getline函數輸入字符串:
a、字符串輸入的get和getline函數原型如下:get(char *, int ,char); get(char* ,int); getline(char*,int ,char); getline(char*,int);
其反回類型都爲istream &也就是說這幾個函數都可以拼接輸出。其中兩個參數的函數輸入指定長度的字符串,第二
個參數的數目要比將要輸入的字符數目大1,因爲最後一個字符將作爲字符串結尾的字符。帶有三個參數的函數的
第三個參數是分界符字符,也就是說當輸入時遇到第三個字符就不會再輸入後面的字符了,即使輸入的字符串沒有
達到指定的長度。
b、get 與getline 的區別是get 函數將分界符留在輸入流中,這樣下次再輸入時將輸入的是這個分界符。而getline 則是
讀取並丟棄這個分界符。比如cin.get(a,3,’z’)如果輸入abz 則字符z 將留在輸入流中,等待下一次輸入,比如在get
函數後接着有cin>>b;則字符z將賦給變量b,而不會再次提示輸入。
c、輸入的字符數超過了指定數量長度時的處理情況:對於getline函數來說,如果輸入的字符數大於指定的字符數的長
度,且最後一個字符不是分界符時,將設置failbit 位。比如cin.getline(a,3,’z’)如果輸入abdc,則會設置failbit 位,而
如果輸入abzde則不會設置failbit位,因爲雖然輸入超過了指定的長度,但是最後一個字符是分界符z,所以不會設
置failbit位,而會將分界字符z後面的字符留在輸入流中,留給下一次輸入。而對於get函數當輸入的字符數超過了
指定的長度時則不會設置failbit位,對於get函數可以使用peek()函數來檢查是否程序是正常結束輸入。如果使用get
函數輸入超出指定數目的字符時,多於的字符將作爲下一次輸入的字符,而對於getline函數而言則會關閉下一次輸
入,因爲getline 函數在輸入的字符數超過了指定的數量時將設置狀態位failbit,在狀態位被清除前輸入會被關閉,
除非被重設。對於這兩個函數而言,當達到文件尾時都將設置eofbit位,流被破壞時設置badbit位。
d、輸入是空字符時的處理情況:對於get 函數而言,如果輸入的是一個空字符則會設置failbit 位,但對於getline 函數
來說則不會設置該位。比如cin.get(a,3);這時如果輸入時直接按下回車的話將使get函數設置failbit位,而對於getline
函數而言則不會設置該位。
e、對於以上的get 和getline 函數,不管是輸入的是單個字符還是字符串,都需要使用ignore 函數來讀取並丟棄多餘的
輸入字符,以使後面的輸入程序能正常的工作。




3、read()函數:函數原型爲iostream& read(const char* addr,streamsize n)。調用方法爲cin.read(a,144);表示輸入144個
字符放到地址從a 開始的內存中,如果還未讀取144 個字符就到達了文件末尾,就設置ios::failbit。read 函數與get
和getline不同的是read函數不會在輸入後加上空值字符,與就是說輸入的數目不必比指定的數目少1,也就是不能
將輸入的字符轉換爲字符串了。read函數可以拼接。




4、readsome()函數:原型爲iostream& readsome(char* addr,streamsize n)。表示把n個字符放到地址從addr開始的內存中,
該函數和read函數差不多,區別在於,如果沒有讀取n個字符,則設置文件結束狀態位ios::eofbit。




5、write()函數:原型爲iostream& write(const char* addr,streamsize n);表示把從地址addr開始的n個字符寫入到流中。




6、peek()函數:peek 函數反回輸入流中的下一個字符,但不抽取輸入流中的字符,也就是說他使得能夠查看下一個輸
入字符。




7、gcount()函數:反回最後一個非格式化抽取方法讀取的字符數。非格式化抽取方法即get 和getline 這樣的函數,>>
這個運算符是格式化抽取方法。




8、strlen()函數:計算數組中的字符數,這種方法比使用gcount函數計算字符數要快。




9、注意:以上的函數都是輸入流類的成員函數,使用他們時需要使用輸入流類的對象來調用,比如cin.get()等。




再次提醒:以上的函數只適合於char類型的數組,不適用於string類型的對象。比如string a; cin.get(a,3);則將發生錯
誤,因類string類型的對象a無法轉換爲char類型的數組。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章