C++輸入輸出常用格式(cin,cout,stringstream)

來源:互聯網
上載者:User

標籤:oct   flag   永久   fine   需要   緩衝   cin   輸入   適用於   

輸入格式

 

 

  1、cin>>a;

 

 

  • 最基本的格式,適用於各種類型。會過濾掉不可見字元例如空格,TAB,斷行符號等

 

 

  2、cin>>noskipws>>ch[i];

 

 

  • 使用了 noskipws流量控制,不會過濾空白字元

 

   3、cin.get(ch); 或 ch = cin.get();

 

  • 接收一個字元,類似於getchar();

  4、cin.getline(s,k);
  • 接收一行中k個字元,可以接收空格
  • cin.getline()實際有三個參數,cin.getline(字串,接收個數,結束字元);
  • 當第三個參數省略時,系統預設為‘\0‘;
   5、getline(cin,s);
  • 和cin.getline()類似,讀入一行字串,值得注意的是cin.getline()屬於istream流,而getline()屬於string流,二者並不相同。
輸出格式   1、cout << a;
  •  

    基本格式,適用於各種類型
  2、cout << setprecision(k) << a;
  • 設定位元,和printf中的%6d此格式類似;
  • 若是想要設定小數點後位元,則用cout << fixed << setprecision(k) << a; 控制小數點後位元
  3、cout << setfill(ch) << setw(k) << a;
  • 設定長度以及填充字元,例如cout << setfill(‘0‘) << setw(3) << 1;輸出001.

 

 

  4、cout << hex << setiosflags(ios::uppercase) << a; 或 cout << hex << uppercase << a;
  • hex控制輸出的格式,預設為dec(十進位),可手動設定dec,hex,oct。
  • setiosflags為控制格式,ios::uppercase 為輸出大寫十六進位格式,也可以省略setiosflags直接寫uppercase.一共有7種格式
  • setiosflags(ios::fixed) --- 固定的浮點顯示
  •   setiosflags(ios::scientific) --- 指數表示
  •   setiosflags(ios::left) ---靠左對齊
  •   setiosflags(ios::right) ---靠右對齊
  •   setiosflags(ios::skipws) --- 忽略前置空白
  •   setiosflags(ios::uppercase) --- 16進位數大寫輸出
  •   setiosflags(ios::lowercase) ---16進位數小寫輸出
   5、endl

這也是cout中很重要的一個東西,不僅僅只是提供一個換行,endl還會重新整理緩衝區。

cout會對輸出內容進行緩衝,所以輸出的內容並不會立即輸出到顯示器而是被儲存在緩衝區中。

一下三種情況會進行輸出:重新整理緩衝區,緩衝區滿時,關閉檔案。

而endl就是重新整理緩衝區,強制進行輸出,若是想觀察不重新整理緩衝區的情況可以加一行#define endl "\n",將endl用分行符號代替,觀察輸出情況。

  • PS:值得注意的是只有setw的設定只有當次輸出有用,下一個cout就會失效,而其他所有控制格式會永久生效。
StringStream

這個東西單獨講,比較重要,包含在sstream庫中。

istringstream類用於執行C++風格的串流的輸入操作。
ostringstream類用於執行C風格的串流的輸出操作。
stringstream類同時可以支援C風格的串流的輸入輸出操作。

然後stringstream的作用就是從string對象讀取字元或字串。

1     string s = "ABCD";2     stringstream ss(s);3     char ch;4     while(ss>>ch){5         cout << ch << " ";6     }7 8     //運行結果9     //A B C D

又例如

1     string s = "hello world";2     stringstream ss(s);3     string str;4     while(ss>>str){5         cout << str << " ";6     }7 8     //運行結果9     //hello world

在某些題目需要處理字串時,這些題目往往是輸入的一行中包含多個字元以及空格,這個時候就可以利用 stringstream進行單個字元或者單個字串分析處理了。

 

還是那句話,其實啥都不是很難,多敲代碼,多運用就熟悉了 =7=

C++輸入輸出常用格式(cin,cout,stringstream)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.