午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

c++格式化輸入輸出 - C/C++ - 51CTO技術(shù)論壇

 setprecision 2010-10-03

c++格式化輸入輸出

c++格式化輸入輸出
1 a' y( Y# F4 X7 bcin與cout  + S: P0 q* }0 {8 M
一:標準輸入函數(shù)cin  6 H% F$ K6 Y  _- n! S0 ~' Q2 X! N
    不知道說它是個函數(shù)對還是不對,它是代表標準的輸入設(shè)備--鍵盤。他是屬于流的,他的用法和流的用法是一樣的。也就是:cin>>變量; , Z$ v3 ]5 p6 T( I. ~) v
小小的說明一下,輸入多個變量可以寫在一行,如:cin>>x>>y>>z; 7 u: U* n9 a/ `& M5 R# S2 ]
這樣寫不是不允許,而是不好看,如果是不同的變量類型,那就更是沒頭沒腦了。除了你,人家是不知道該輸入什么的,所以,一般在輸入語句的前面,我們一般都 & Y8 J6 [+ B7 ]# ]1 C
要做一個提示,請輸入×××,讓人家心里有個底,知道這個變量是做什么的。  0 P6 C& d3 x0 F/ E* b
    另外,這個函數(shù)是不用帶地址符號"&"的,也不用寫明變量類型,千萬不要跟scanf混淆。當然他就也不檢查變量輸入是否合法。如:  * M( R9 W) y* \* I% L: v
int i;  
" m& `8 E. V! Ycout<<"please input a number:"  
; ^1 [9 Y# u. z' tcin>>i;  
9 L. n0 K9 d  x' X) N: V  V" b8 I0 icout<<"i="<<i<<endl;  ) ?2 @- [% @3 v+ v  f' j
如果你輸入的是一個字符如’a’那么他也不檢查,但你輸出的結(jié)果不是正確的,這要是手工進行檢查。當然他也跟scanf一樣,如果在循環(huán)內(nèi)部輸入不合法的變量值,那么也將陷入死循環(huán)。如下:  0 e( N1 \) P' A- r5 R
/*一個輸入不合法變量陷入死循環(huán)的例子*/  , [4 [3 Y3 j( O) t$ ?5 Z
#include <iostream.h>  
7 O: a& ~3 ?5 ~+ y- X" Smain()  % g, b, U& |/ ]6 |$ o
{  ! \: t+ ~& r- ?
     int i;  & M5 J# e' }2 o
     while(i!=-1)  : M+ K* b& M3 J4 M$ O4 h4 H" X: u
     {  
6 ~2 G* r/ K; _2 V) B, n8 M         cout<<"i="  . ~6 R; t, ]/ Y8 `3 Z. T( n9 N9 |
         cin>>i;    /*請輸入不是一個字符如’a’試試*/  % b9 S+ g6 ^' N/ h$ U% F$ T
         cout<<endl;  
2 W; {, i0 z; O     }  . I3 F- Q5 b) W* M0 A
}  
% h1 s# f% V5 d/ @; l    如上一個程序,如果你輸入的不合法,那就將陷入死循環(huán)。解決的辦法有個一,把cin>>i;語句移到判斷循環(huán)的語句中,那么,你輸入的如果是不合法的變量,他將跳出循環(huán)。  
0 I2 {, O% Z! e9 X0 q3 G. u    cin是用空格來分隔輸入的。請看看如下的例子:  : ]/ R& }' |. c" ]: ~6 ~, C$ s0 L' [
/*一個空格分隔使輸入的變量達不到希望的值*/  
& `, `+ a0 x7 X+ [- o; D#include <iostream.h>  $ q& i, S& |) N
main()  5 o" i: f6 d  z8 z6 i
{  7 v' ~, A# ]3 ^1 s
     char str[20];  ' f( o6 A0 x2 `! R
     cout<<"please input a string:";  
: ^. n7 o! B0 Q2 J! A( I     cin>>str;    /*你試著輸入"hello word"*/  
7 Q/ [0 h2 l  \5 J7 j* @; W     cout<<endl<<"str="<<str;  . \! T3 ~. d' d: l/ m0 |9 F
}  
3 j7 Z6 R- N1 `' Q" w) \看得到是什么結(jié)果呢?得到的僅僅是str=hello,為什么呢?因為cin是以空格為分隔的,當你輸入一個空格時,那他就認為后面的輸入不屬于這里了, - ?9 P: y3 D) d0 `+ y8 X% H% m9 @8 x
認為應(yīng)該給后面的變量了。另外,當你輸入的字符串大于分配的空間時,還會出現(xiàn)溢出現(xiàn)象。當然,還有整行輸入的函數(shù),包括空格也一起輸入了,以后也會學到。  
2 Z. e8 b; ]  p6 H) O. {9 ^# K% o二、標準輸出函數(shù)cout  3 D# `. v- J: c, q& A
    說cout是函數(shù),也跟cin一樣,不知道對不對。他代表的是標準輸出設(shè)備--顯示器。其實前面已經(jīng)用過很多次這個函數(shù)了。我們就通過一個例子來進行格式化的輸出就是了,大家就體會體會這個例子就行了,比printf靈活了很多。  1 P% |& N) J7 W3 s$ M0 w( @
    首先,我們可以按16進制,8進制和10進制來顯示我們的數(shù)據(jù),如下:  
7 m& \3 r% N( o7 `+ u! B/*一個按進制輸出的例子*/  3 _' T4 a: x7 I
#include<iostream.h>  6 [3 I+ _4 S! e* g, G
void main()  
2 o  O' ~7 `; c! H  H1 j# h{  # w$ w+ e) X' T0 O; L
    int x=30, y=300, z=1024;  
- }1 f9 K% m5 e2 X9 L9 `    cout<<x<<’ ’<<y<<’ ’<<z<<endl;                  //按十進制輸出  
( `9 I% S0 o) d/ D4 l  i    cout.setf(ios::showbase | ios::uppercase);   //設(shè)置基指示符輸出和數(shù)值中的字母大寫輸出  $ Y& j0 i7 G2 o
    cout<<x<<’ ’<<y<<’ ’<<z<<endl;  
+ u& f5 h8 c9 Z5 f, T1 c" f* n    cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符輸出和數(shù)值中的字母大寫輸出  
  T3 s+ H& w5 }* B# ^6 Q  ^' W    cout.setf(ios::oct);                                    //設(shè)置為八進制輸出,此設(shè)置不取消一直有效  - ?0 [% _$ R2 I' b$ \9 {! q+ U! v# @. x
    cout<<x<<’ ’<<y<<’ ’<<z<<endl;                   //按八進制輸出  
$ e% e8 {% S$ q. l4 R    cout.setf(ios::showbase | ios::uppercase);    //設(shè)置基指示符輸出和數(shù)值中的字母大寫輸出  
# O8 k/ r* j: _. ~9 Y- r7 R    cout<<x<<’ ’<<y<<’ ’<<z<<endl;  # B- d  j  r: O4 t
    cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符輸出和數(shù)值中的字母大寫輸出  1 l- q0 K* }/ n$ H2 j6 v
    cout.unsetf(ios::oct);                                 //取消八進制輸出設(shè)置,恢復按十進制輸出  
: x" O4 X; B6 Y5 z4 f    cout.setf(ios::hex);                                    //設(shè)置為十六進制輸出  
! }4 j0 S2 K  H& Q, f- k" y    cout<<x<<’ ’<<y<<’ ’<<z<<endl;  
  X' r9 b9 V' Q6 u9 X    cout.setf(ios::showbase | ios::uppercase); //設(shè)置基指示符輸出和數(shù)值中的字母大寫輸出  + `& {' R' J3 H& R( W. d( M$ r
    cout<<x<<’ ’<<y<<’ ’<<z<<endl;  ( L- F7 @: y6 ]" x6 \8 y2 M7 ]+ I0 C4 p
    cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符輸出和數(shù)值中的字母大寫輸出  
3 s* J" Z1 a6 s" @  i1 E    cout.unsetf(ios::hex);                       //取消十六進制輸出設(shè)置,恢復按十進制輸出  & j4 n2 @7 I2 V; Y
    cout<<x<<’ ’<<y<<’ ’<<z<<endl;  " `" i8 s7 w* [4 i" g
}  * s) y. u; S4 c2 ?, r! r
我們用cout.setf()設(shè)置輸出的格式,用cout.unsetf()取消格式。可以看出10進制在輸出的時候不管有沒有設(shè)置基指示符ios::
5 ?% Z6 m/ s5 J8 ishowbase,都沒用,8進制再輸出的時候在前面加0,而16進制是在前面加0X。而對于數(shù)值中字母大寫輸出,只對16進制有用,以后我們就應(yīng)該看情 ! w' E1 x# S+ ^# `  l1 N& D
況使用了。當然,我們前面已經(jīng)說了,還有一種方法也可以實現(xiàn)格式化輸出,那就是使用操縱算子,如下,  ! p. o! k/ [( b
/*一個按進制輸出的例子*/  7 n( A5 D0 O4 E( }
#include<iomanip.h>  
# W7 T% l7 R+ w+ S( dvoid main()  7 n: ?4 N+ ^! E* k% x
{  ; x: p4 m0 I, u+ u! J9 R5 M
    int x=30, y=300, z=1024;  
' `3 z* V7 Q8 u: [( a    cout<<x<<’ ’<<y<<’ ’<<z<<endl;       //按十進制輸出  
7 a- @! J. M" o+ A9 U  x! C  o    cout<<oct<<x<<’ ’<<y<<’ ’<<z<<endl; //按八進制輸出  # |! V: V6 u4 [; D
    cout<<setiosflags(ios::showbase);    //設(shè)置基指示符  
5 D$ e2 j. W; `+ n$ o6 ]$ q    cout<<x<<’ ’<<y<<’ ’<<z<<endl;       //仍按八進制輸出  
' T+ E* [* V* h2 O: M3 X, y( q    cout<<resetiosflags(ios::showbase); //取消基指示符  # ~9 o8 `6 t8 f. R9 h! ~) b
    cout<<hex<<x<<’ ’<<y<<’ ’<<z<<endl; //按十六進制輸出  : C3 g6 I; Y, \+ y3 ]
    cout<<setiosflags(ios::showbase | ios::uppercase);  
$ |+ W2 S  @+ g, F9 N% P2 g3 X6 J                  //設(shè)置基指示符和數(shù)值中的字母大寫輸出,  ) h6 D' H" z( a; H& ]' |- b
    cout<<x<<’ ’<<y<<’ ’<<z<<endl; //仍按十六進制輸出  , a. V7 G" X; S. X4 x
    cout<<resetiosflags(ios::showbase | ios::uppercase);  
, g3 a  V1 T1 q                  //取消基指示符和數(shù)值中的字母大寫輸出  
& g" b5 R1 O& n1 V% N$ n9 b    cout<<x<<’ ’<<y<<’ ’<<z<<endl; //仍按十六進制輸出  7 J3 y* Y! ?* c2 K
    cout<<dec<<x<<’ ’<<y<<’ ’<<z<<endl; //按十進制輸出  ; [" J* m& O' ?  g  C2 u$ k
}  
5 C; a/ X7 Y: P我們用以上的程序也可以輸出同樣的結(jié)果,可見他的靈活。我們現(xiàn)在輸出下列一段文字:  / M: G- x* [* W+ b8 z5 G
第一章  
' @9 I3 {8 \& j) {3 C- a    1.1   什么是C語言...........................1  
" }2 ^$ p1 Q5 N; O    1.11 C語言的歷史..........................58  
8 Q3 t8 P9 T; X3 ~( R' W, d0 `第二章  
6 `  Q& v, X+ m: `方法很多種啦,我們可以這樣寫:  6 H* O3 k% S' k4 h8 h+ e
/*一個使用填充,寬度,對齊方式的例子*/  % V( k& ?4 U5 U
#include <iostream.h>  ) i1 \3 Z# D9 d  Z; I' P
void main()  
9 G8 q0 v: S/ C9 z7 @! W{  2 Q* d8 i7 O% v9 k
    cout<<"第一章"<<endl;  
  P5 ?  L9 J3 u9 k    cout<<"    ";  . `. v: O7 T& P! l# k: `
    cout.setf(ios::left);        //設(shè)置對齊方式為left  
; c' z" ^3 s$ _9 C' R6 ~' e/ C    cout.width(7);               //設(shè)置寬度為7,不足用空格填充  & S, t) |/ c- t3 t2 \- w
    cout<<"1.1";  $ t. o6 z: M9 ?0 V
    cout<<"什么是C語言";  6 R5 z$ S; N/ C, M* b5 E, h7 p
    cout.unsetf(ios::left);      //取消對齊方式,用缺省right方式  ; Y3 x! J; m# p* `
    cout.fill(’.’);              //設(shè)置填充方式  
8 x8 X2 c: L4 S4 _3 s    cout.width(30);              //設(shè)置寬度,只對下條輸出有用  
# t0 V2 I4 ]1 {  Q& B- Z* [. j    cout<<1<<endl;  
% E6 h. D# N* E& F! G( v/ R+ o    cout<<"    ";                 
( V+ _! e, y. i' k) P    cout.width(7);               //設(shè)置寬度  
$ W5 r/ I! ~" f9 n    cout.setf(ios::left);        //設(shè)置對齊方式為left  & P5 O* D! V. X
    cout.fill(’ ’);              //設(shè)置填充,缺省為空格  / Q; |& G/ K. _6 Y4 \
    cout<<"1.11";  
1 u* ^5 `! {, ~7 P& G! N$ E$ E    cout<<"C語言的歷史";  
( V# f- ]3 e9 H. R    cout.unsetf(ios::left);      //取消對齊方式  
5 D0 E3 V% D9 |8 V, s1 x5 Q+ ~7 O    cout.fill(’.’);  
( Q: i- Z- o: m% K  U    cout.width(30);  ' [% Z/ [. |! Q4 g1 ^
    cout<<58<<endl;  7 [- h+ f& Z" `1 `4 }
    cout.fill(’ ’);  ( M, a& b% C: ]
    cout<<"第二章"<<endl;  
5 m: ]5 T) B/ U; l! L; U4 }}  6 D& n* T9 m  O% k: D
    我們多次設(shè)置了寬度,為的是使我們的間距能一致,也使用了對齊方式,為的是使我們的數(shù)據(jù)能對齊顯示,看起來美觀。我們還使用了填充方式。我們下面用操縱算子來實現(xiàn)也是可以的。  
! m3 \( p1 n! k0 z$ C3 r7 Z$ L/*一個使用填充,寬度,對齊方式的例子*/  , b, J6 E$ P" o( F5 a, t
#include <iomanip.h>  2 h. @5 b! @& ^- C' g+ [* E
void main()  : H* `( h, Y3 F" e8 J
{  2 X3 V# Y% c8 A* A
    cout<<"第一章"<<endl;  
6 k1 t' H/ f( G8 I; S. r- ]    cout<<"    ";  2 Q& F/ x, i! k1 h2 u
    cout<<setiosflags(ios::left)<<setw(7);         //設(shè)置寬度為7,left對齊方式  0 U6 y( g6 ~# Y$ V+ r
    cout<<"1.1";  / ?+ `* C1 j! N2 B
    cout<<"什么是C語言";  
" w' Q- i- J6 J    cout<<resetiosflags(ios::left);                //取消對齊方式    z+ f; ]& i% |" q) Q# U7 i  P
    cout<<setfill(’.’)<<setw(30)<<1<<endl;         //寬度為30,填充為’.’輸出  
, ]. ^" U- _+ _0 j    cout<<setfill(’ ’);                            //恢復填充為空格  0 T& _' w% ~1 |1 x
    cout<<"    ";  
1 b5 t7 Y( Q+ ]* {1 C    cout<<setw(7)<<setiosflags(ios::left);         //設(shè)置寬度為7,left對齊方式  3 J1 u2 z! B3 k3 _3 A9 F
    cout<<"1.11";  
; B/ K4 _- o4 ^' X/ U    cout<<"C語言的歷史";  
, P- |- J7 p' b* l; \    cout<<resetiosflags(ios::left);                //取消對齊方式  
- {3 n$ Z! |4 |# M    cout<<setfill(’.’)<<setw(30)<<58<<endl;        //寬度為30,填充為’.’輸出      
8 ]3 Y2 r+ a- M/ o# c2 D    cout<<setfill(’ ’)<<"第二章"<<endl;  
2 t  `0 J9 d& }4 R}  # d/ M3 _& K" t: y' E9 B2 r' l5 b  F
    我們輸出了同樣的效果,不過依我的性格,我更喜歡用操縱算子來進行格式化輸出。最后我們看看浮點數(shù)的格式輸出,如下例:  
3 ^/ S8 R; r4 s& q  W9 D/*關(guān)于浮點數(shù)的格式*/  
5 R* e" }* e  R#include <iostream.h>  
, m. C# e0 m( A& K% ovoid main()    Q+ m6 t& F  D+ ~4 z7 {1 O
{  
+ D6 q$ `( |) Z. t    float f=2.0/3.0,f1=0.000000001,f2=-9.9;  4 P9 s+ E, I% `& F7 |
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;      //正常輸出  5 m' ]# E0 R, `/ I
    cout.setf(ios::showpos);              //強制在正數(shù)前加+號  
7 E$ `5 W" \, l0 q) ~    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  0 E+ ?, M" Q8 B
    cout.unsetf(ios::showpos);            //取消正數(shù)前加+號    j, J  d9 d# @
    cout.setf(ios::showpoint);            //強制顯示小數(shù)點后的無效0  9 b) N0 g5 s9 [$ e4 h. ^; X
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
  O5 S# n( q- u5 F% R+ d    cout.unsetf(ios::showpoint);          //取消顯示小數(shù)點后的無效0  ) @5 ]& @3 ^1 h, g. a+ f1 }
    cout.setf(ios::scientific);           //科學記數(shù)法  
$ G2 ~% J* |& }" {0 k2 P5 g  v+ S    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
6 d2 O, @$ e5 O7 S    cout.unsetf(ios::scientific);         //取消科學記數(shù)法  
7 w# G4 ~+ o1 ~% k    cout.setf(ios::fixed);                //按點輸出顯示  9 W: s0 ~# X  j  W
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
# D# D2 c: j- q/ n" x0 {. O1 b    cout.unsetf(ios::fixed);              //取消按點輸出顯示  " O/ W' o9 y! z2 Y3 K
    cout.precision(18);                   //精度為18,正常為6  
( r# ~5 {* w5 }5 S# c2 a! i* r5 h    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
6 n- V  y# q. q    cout.precision(6);                    //精度恢復為6  / Y. Z# B6 s( E
}  
" O' F& I" k9 C& ^" x2 T    同樣,我們也一樣能用操縱算子實現(xiàn)同樣的功能:  3 S$ h2 ]1 G" v* R' C
/*關(guān)于浮點數(shù)的格式*/  
( _  j3 g6 J. G' _8 v/ Z- o#include <iomanip.h>  
) c3 J: Q* c9 Q- c: X& w6 O' gvoid main()  + \/ ]# J" W: A+ R6 V
{  2 i0 ?/ K" h! [, a- H  k
    float f=2.0/3.0,f1=0.000000001,f2=-9.9;  
% N& ]- R# t# c5 P# X' N: o    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;      //正常輸出  
0 m3 Y. ^8 @6 W7 f* x    cout<<setiosflags(ios::showpos);      //強制在正數(shù)前加+號  % z" e4 l: {  [2 \$ u2 G
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  " p& u9 e# g6 F: z7 ?* P' r; I
    cout<<resetiosflags(ios::showpos);    //取消正數(shù)前加+號  / ^" i, o4 X' q) H  b  d0 z$ v
    cout<<setiosflags(ios::showpoint);    //強制顯示小數(shù)點后的無效0  3 q- X# i! \" h" X  O8 o. z
    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
& J- ~$ o( k# Z    cout<<resetiosflags(ios::showpoint); //取消顯示小數(shù)點后的無效0  
) v+ \8 t& w% |) y( C2 ?7 c  F+ A    cout<<setiosflags(ios::scientific);   //科學記數(shù)法  
# p6 p8 R9 a' [/ V5 u3 f% C) _    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  
: P& |! Q7 D3 d. y7 b5 ^8 _1 z" R    cout<<resetiosflags(ios::scientific); //取消科學記數(shù)法  
0 _1 X" f( }1 \) T    cout<<setiosflags(ios::fixed);        //按點輸出顯示  
8 G$ Y' B' _" h1 F" Z5 I    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  3 T, x9 t! B% \
    cout<<resetiosflags(ios::fixed);       //取消按點輸出顯示  
6 r8 U, K7 t* d( E  b4 z    cout<<setprecision(18);               //精度為18,正常為6  
2 U! I7 S  n* d' Q$ N    cout<<f<<’ ’<<f1<<’ ’<<f2<<endl;  6 ~* e, e3 I1 j- ~! v* O/ W
    cout<<setprecision(6);                //精度恢復為6  ! A6 Z. y! F. }$ f
}  
: k$ ^9 c" a7 |6 ?( J9 C/ k; V- p   在c/c++系統(tǒng)中除了標準的輸入輸出外,還提供了更多的輸入函數(shù)。這寫函數(shù)主要有g(shù)etch(),getche(),  
# O& n, y8 J( M4 egetchar
4 }% [' v4 e+ H( Y$ o# }(),cin.get(),putch(),putchar(),cout.put(),gets(),cin.getline(),puts()。另外
2 t- \- b0 C' v8 e# A  x還有些為了讓緩沖區(qū)不影響程序的正確操作的緩沖去的操作,如:cin.putback(),fflush(stdin),cout.flush().我們
/ S. K: b2 S4 Y8 w0 v$ G& y做一下簡單的說明。  , _- \* i0 X/ z7 r6 ]8 A) w" }8 r
    1、getch()和getche(),非緩沖式輸入,從鍵盤讀入一個字符。getch()讀入字符不顯示。有conio.h支持。  : g" y3 {& I1 s# J
    2、cin.get(),getchar(),緩沖式輸入,從鍵盤讀入一個字符,并顯示。getchar()由stdio.h支持,cin.get()由iostream.h支持。  ( R+ S$ M0 \4 z7 n; d& S9 E4 Z! |
    3、putch()和putchar(),非緩沖式輸出,輸出一個字符到顯示器。putch()由conio.h支持,putchar()由stdio.h支持。  ! f* f4 M( q5 \& P! [: a* Y. ?
    4、cout.put(),緩沖式輸出,輸出一個字符到顯示器。由iostream.h支持。  
6 _. h" o- Z+ G7 \% W    5、gets()和cin.geline(),緩沖式輸入,讀入一字符串(包括空格,不包括最后的回車),gets()由stdio.h支持,cin.getline()由iostream.h支持。  $ U8 j! w' v, F' W  D
    6、puts(),非緩沖輸出,輸出一個字符串,由stdio.h支持。  : y8 `8 A2 g) x9 W; ~
    7、cin.putback(),把一個字符送回輸入緩沖區(qū)。  
5 l# i! j3 ]* R  U    8、fflush(stdin),清除輸入緩沖區(qū)操作。無法清除cin.get()等帶來的操作。  9 C( a9 J2 K; q( Z( O
    9、cout.flush(),清楚輸出緩沖區(qū)。  
$ H2 {# }6 C' b: c    在這里我們稍微說一下輸入/輸出緩沖區(qū),這是為了減少程序訪問io帶來中斷而設(shè)的一段空間。當程序滿足某個刷新條件時,那就將清理緩沖區(qū)。具體條件為:  
1 S; ]: ^. }9 j! r    1、輸入緩沖區(qū)  . B+ j' h1 Y3 O0 W" ~* {7 `
a,程序要求輸入時,按下了回車鍵。  0 j! b( A+ H+ y  w9 }7 ]
b,遇到程序結(jié)束。  2 _2 X  |6 j" w5 G1 @5 C; q5 k
c,遇到下一條輸入語句。  - l6 a' B" b( Z  p! K$ m/ X
d,遇到清除緩沖區(qū)操作  ' B; ^$ _+ K: A3 u9 R' Z3 T
e,緩沖區(qū)溢出  
) O* g& Y" D6 n1 @1 p" O    2、輸出緩沖區(qū)  
7 Y" t+ t4 g, N5 C6 N# H. ia,輸出緩沖區(qū)溢出  
: m$ M0 ]& ]; P) pb,遇到下一條輸入語句  . z4 Y8 Y7 O3 n. s' g5 s1 X
c,使用刷新緩沖區(qū)迫使清除  3 ^0 ^1 X3 {! l: x$ R
d,程序結(jié)束。  
* k" S9 G5 b- B0 F( P; N/ J    緩沖區(qū)操作有時會帶來程序的不正確的輸入,如前面說的scanf(),在連續(xù)輸入的時候,會把一個回車賦給下一個字符變量。我們操作的時候一定要注意。% |! y8 K7 g, X& @; G% v. Q
本文出自 51CTO.COM技術(shù)博客

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多