C++ 学习笔记之——输入和输出
在 C++ 中,我們通過調(diào)用輸入輸出流庫中的流對象 cin 和 cout 來實(shí)現(xiàn)輸入和輸出。
#include <iostream>using namespace std;int main() {int a = 0;float b = 0;char c = 0;cin >> a >> b >> c;cout << a << '\t' << b << '\t' << c << '\t' << endl;return 0; } 56 Enter 5.36 Enter a Enter 56 5.36 a在用 cin 進(jìn)行輸入時(shí),我們不用指定具體的數(shù)據(jù)類型,系統(tǒng)會根據(jù)變量的類型從輸入流中提取相應(yīng)長度的字節(jié)。同樣,用 cout 進(jìn)行輸出時(shí),系統(tǒng)也會自動判別輸出數(shù)據(jù)的類型使輸出的數(shù)據(jù)按相應(yīng)的類型輸出。
通過 cin 讀入數(shù)據(jù)時(shí),會自動跳過輸入流中的空格、tab 鍵和換行字符。當(dāng)遇到無效字符或者文件結(jié)束符時(shí),輸入 cin 就會處于出錯(cuò)狀態(tài),我們可以通過判斷 cin 的值來判斷流對象是否處于正常狀態(tài)和提取操作是否成功。
另外,我們還可以使用控制符來設(shè)置輸入輸出的格式。
#include <iostream> #include <iomanip>using namespace std;int main() {int a = 256;float b = 3.1415926525;cout << b << endl;cout << setprecision(9) << b << endl; // 設(shè)置精度cout << setiosflags(ios::fixed) << setprecision(2) << b << endl; // 設(shè)置小數(shù)點(diǎn)位數(shù)cout << endl << a << endl;cout << hex << a << endl; // 十六進(jìn)制輸出cout << dec << setfill('*') << setw(5) << a << endl; // 設(shè)置域?qū)捄吞畛鋍out << setiosflags(ios::showpos) << a << endl; // 顯示符號cout << resetiosflags(ios::showpos) << a << endl; // 取消顯示符號return 0; } 3.14159 3.14159274 3.24256 100 **256 +256 256也可以使用 cout 的成員函數(shù)來設(shè)置輸入輸出的格式。
#include <iostream>using namespace std;int main() {int a = 256;float b = 3.1415926525;cout << b << endl;cout.precision(9); // 設(shè)置精度cout << b << endl;cout.precision(2);cout.setf(ios::fixed); // 設(shè)置固定小數(shù)點(diǎn)位數(shù)cout << b << endl;cout << endl << a << endl;cout.setf(ios::hex, ios::basefield);cout << a << endl;cout.fill('*'); // 設(shè)置填充cout.width(5); // 設(shè)置域?qū)抍out << a << endl;cout.setf(ios::showpos); // 顯示符號cout << a << endl;cout.unsetf(ios::showpos); // 取消顯示符號cout << a << endl;return 0; } 3.14159 3.14159274 3.24256 100 **256 +256 256為了與 C 語言兼容,C++ 保留了 C 中的 scanf 和 printf 函數(shù)進(jìn)行輸入輸出,以及 getchar 和 putchar 函數(shù)進(jìn)行單個(gè)字符的輸入輸出。
此外,我們還可以用輸入輸出流對象的一些成員函數(shù)來實(shí)現(xiàn)輸入和輸出。
- cout.put() 輸出單個(gè)字符,可以連續(xù)輸出
- cin.get() 讀入一個(gè)字符(包括空白字符),返回讀入成功的字符,如遇到文件結(jié)束符,返回 EOF
- cin.get(ch) 讀入一個(gè)字符并賦值給變量 ch,成功讀入則返回真
- cin.get (字符數(shù)組或指針,字符個(gè)數(shù) n,終止字符) 讀入 n-1 個(gè)字符,如遇到終止字符則提前結(jié)束
- cin.getline (字符數(shù)組或指針,字符個(gè)數(shù) n,終止字符) 與上面的 cin.get 類似,但是遇到終止字符時(shí),字符指針會移到該終止字符后面,而 cin.get 則會停留在原位置
一些其他的成員函數(shù):
- cin.eof() 如果到達(dá)文件末尾(遇文件終止符)返回真,否則返回假
- cin.peek() 返回當(dāng)前指針指向的字符,但只是觀測,指針仍然停留在當(dāng)前位置
- cin.putback(ch) 將字符 ch 返回到輸入流,插入到當(dāng)前指針位置
- cin.ignore (n, 終止字符) 跳過輸入流中 n 個(gè)字符,若遇到終止符提前結(jié)束,此時(shí)指向終止字符后面一個(gè)位置
獲取更多精彩,請關(guān)注「seniusen」!
轉(zhuǎn)載于:https://www.cnblogs.com/seniusen/p/9873190.html
總結(jié)
以上是生活随笔為你收集整理的C++ 学习笔记之——输入和输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序项目实践总结
- 下一篇: s3c2440移植MQTT