C++輸入輸出常用格式(cin,cout,stringstream)
輸入格式
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(字串,接收個數,結束字元);
- 當第三個引數省略時,系統預設為` `;
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 ”
“,將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++ cout 格式輸出C++
- C++格式化輸入輸出C++
- C++ 資料輸入cin (解決CLoin輸入中文程式出錯)C++
- C++ cout列印輸出 (解決輸出亂碼)C++
- C/C++中printf和C++中cout的輸出格式C++
- 【C++】輸入輸出C++
- 加速cin/cout
- 格式化輸入和輸出
- 常用輸入輸出函式函式
- c++入門:輸入輸出流C++
- C++中的檔案輸入/輸出(3):掌握輸入/輸出流 (轉)C++
- C++輸出流cout的執行順序問題C++
- [C++]輸入/輸出流類庫C++
- 【C++】標準檔案的輸入輸出!!!C++
- 物聯網學習教程——格式輸入與輸出
- 將輸入的字元轉化為int格式輸出字元
- C/C++程式語言中的基礎知識(一)--格式化輸入輸出C++
- C/C++輸入函式 scanf() gets() getline() cin.getline() cin.get() getchar()C++函式
- 輸入輸出
- 【c++】c++格式控制輸出簡單應用C++
- C++中的檔案輸入/輸出(4):檢測輸入/輸出的狀態標誌 (轉)C++
- C++ 學習筆記之——輸入和輸出C++筆記
- C++中使用巨集定義來註釋掉所有的cout輸出C++
- 輸入輸出流
- C++名稱空間、標準輸入輸出、引用C++
- 第四章 字串和格式化輸入/輸出字串
- C++初始化,之不明白篇 cout<<x<<endl 與 cout<<"x = "<<cout<<x<<endl的輸出的值會不一樣C++
- std::cout 輸出 unsigned char型別資料型別
- 格式化輸出
- 入門計劃->使用(C++庫)ostringstream輸出(格式化) (轉)C++
- [C++] cin, cout, clog, cerr中的c是什麼意思C++
- Java 輸入輸出流Java
- 輸入輸出系統
- JAVA輸入輸出流Java
- c++實現輸出指定的格式的資料C++
- 演算法競賽中的常用輸入輸出總結演算法
- ffmpeg分析系列之三(輸入輸出格式)
- linux中的輸入與輸出管理(重定向輸入,輸出,管道符)Linux