C++基礎(chǔ)學(xué)習(xí)之輸入輸出流詳解
C++是一種廣泛應(yīng)用的編程語(yǔ)言,其輸入和輸出是程序所必須的基本操作之一。輸入是指從外部獲取程序需要的數(shù)據(jù),輸出則是將程序處理的結(jié)果返回給用戶。本文將介紹C++中的輸入和輸出操作,包括輸入輸出流、文件輸入輸出等,希望對(duì)讀者有所幫助。
1. 輸入輸出流
在C++中,輸入輸出流是指對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)操作的對(duì)象。C++中提供了兩種輸入輸出流,即標(biāo)準(zhǔn)輸入輸出流和文件輸入輸出流。
(1)標(biāo)準(zhǔn)輸入輸出流
標(biāo)準(zhǔn)輸入輸出流分別是stdin和stdout。其中,stdin代表標(biāo)準(zhǔn)輸入流,也就是鍵盤(pán)輸入的數(shù)據(jù);stdout代表標(biāo)準(zhǔn)輸出流,也就是屏幕上輸出的數(shù)據(jù)。它們分別可以用cin和cout來(lái)實(shí)現(xiàn)。
cin與>>符號(hào)一起使用,可從標(biāo)準(zhǔn)輸入流中讀取用戶輸入的數(shù)據(jù)。下面是一個(gè)示例:
#include <iostream> using namespace std; int main(){ int a, b; cout << "請(qǐng)輸入兩個(gè)整數(shù):" << endl; cin >> a >> b; cout << "您輸入的兩個(gè)整數(shù)分別為:" << a << "和" << b << endl; return 0; }
輸出結(jié)果如下:
請(qǐng)輸入兩個(gè)整數(shù):
2 3
您輸入的兩個(gè)整數(shù)分別為:2和3
cout用于將數(shù)據(jù)輸出到屏幕上。在輸出時(shí),需要使用<<符號(hào)。下面是一個(gè)示例:
#include <iostream> using namespace std; int main(){ cout << "Hello, world!" << endl; return 0; }
輸出結(jié)果如下:
Hello, world!
(2)文件輸入輸出流
C++中提供了文件輸入輸出流類fstream,用于對(duì)文件進(jìn)行讀寫(xiě)操作。其中,fstream類繼承自iostream類,包括了文件操作流的特性。fstream類是一個(gè)泛型流,可以支持各種數(shù)據(jù)類型,如整型、浮點(diǎn)型、字符型和字符串。下面是一個(gè)使用fstream讀取文件的示例:
#include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string fileName; cout << "請(qǐng)輸入文件名:" << endl; cin >> fileName; ifstream inFile(fileName.c_str()); if(!inFile.is_open()){ cout << "打開(kāi)文件失??!" << endl; }else{ string tempStr; while(getline(inFile, tempStr)){ cout << tempStr << endl; } } inFile.close(); return 0; }
這個(gè)程序會(huì)提示用戶輸入一個(gè)文件名,然后從這個(gè)文件中讀取數(shù)據(jù)并輸出。輸出結(jié)果如下:
請(qǐng)輸入文件名:
test.txt
This is a test file.
It is used for input and output operations.
2. 文件輸入輸出
文件輸入輸出是指將數(shù)據(jù)存儲(chǔ)在磁盤(pán)上的操作,通過(guò)C++中的文件輸入輸出流來(lái)實(shí)現(xiàn)。文件輸入輸出在實(shí)際開(kāi)發(fā)中非常常用,比如對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、讀取和處理等。下面是一個(gè)將數(shù)據(jù)寫(xiě)入文件的示例:
#include <iostream> #include <fstream> using namespace std; int main(){ ofstream outFile("test.txt"); if(!outFile.is_open()){ cout << "打開(kāi)文件失??!" << endl; }else{ outFile << "This is a test file." << endl; outFile << "It is used for input and output operations." << endl; } outFile.close(); return 0; }
這個(gè)程序會(huì)將兩行文本存儲(chǔ)到一個(gè)名為test.txt的文件中。當(dāng)程序運(yùn)行時(shí),會(huì)自動(dòng)創(chuàng)建這個(gè)文件并寫(xiě)入數(shù)據(jù)。如果文件已經(jīng)存在,那么將會(huì)覆蓋原有的文件。讀取文件中的數(shù)據(jù)方法已在上一節(jié)中進(jìn)行說(shuō)明。
3. 格式化輸入輸出
格式化輸入輸出指的是將數(shù)據(jù)按照一定的格式顯示在屏幕上或存儲(chǔ)到文件中。C++中提供了一種可定制的格式化輸入輸出的方式,即格式化輸入輸出流。該類流函數(shù)包含在頭文件中,支持對(duì)輸出進(jìn)行單、雙字節(jié)對(duì)齊、設(shè)置小數(shù)位數(shù)等等。
下面是一個(gè)格式化輸出流的示例:
#include <iostream> #include <iomanip> using namespace std; int main(){ double val = 3.1415926; cout << fixed << setprecision(3) << val << endl; return 0; }
這個(gè)程序使用了fixed和setprecision函數(shù),并設(shè)置小數(shù)精度為3。輸出結(jié)果為:
3.142
另外,C++中還提供了一種格式化輸入輸出方式,即printf和scanf函數(shù)。這兩個(gè)函數(shù)也可以用于格式化輸入輸出,但是使用方法與
4. 字符串輸入輸出
C++中提供了string類型,用于存儲(chǔ)字符串,并支持輸入輸出操作??梢允褂胏in進(jìn)行字符串輸入,使用cout進(jìn)行字符串輸出。下面是一個(gè)字符串輸入輸出的示例:
#include <iostream> #include <string> using namespace std; int main(){ string s1, s2; cout << "請(qǐng)輸入兩個(gè)字符串:" << endl; cin >> s1 >> s2; cout << "您輸入的兩個(gè)字符串分別為:" << s1 << "和" << s2 << endl; return 0; }
這個(gè)程序?qū)⑻崾居脩糨斎雰蓚€(gè)字符串,然后輸出這兩個(gè)字符串。輸出結(jié)果如下:
請(qǐng)輸入兩個(gè)字符串:
hello world C++
您輸入的兩個(gè)字符串分別為:hello和world
使用getline函數(shù)可以讀取一行字符串。下面是一個(gè)使用getline函數(shù)的示例:
#include <iostream> #include <string> using namespace std; int main(){ string s; cout << "請(qǐng)輸入一個(gè)字符串:" << endl; getline(cin, s); cout << "您輸入的字符串為:" << s << endl; return 0; }
這個(gè)程序?qū)⑻崾居脩糨斎胍粋€(gè)字符串,并使用getline函數(shù)讀取該字符串。輸出結(jié)果如下:
請(qǐng)輸入一個(gè)字符串:
Hello, world!
您輸入的字符串為:Hello, world!
5. 空格處理
在C++中對(duì)于輸入的數(shù)據(jù),空格是默認(rèn)的分隔符,會(huì)自動(dòng)將空格前后的字符分成多個(gè)字符串輸入。而在輸出時(shí),空格是默認(rèn)的連接符,會(huì)將多個(gè)字符串連接成一個(gè)字符串進(jìn)行輸出。下面是一個(gè)示例:
#include <iostream> #include <string> using namespace std; int main(){ string s1, s2; cout << "請(qǐng)輸入兩個(gè)字符串,使用空格分隔:" << endl; cin >> s1 >> s2; cout << "您輸入的兩個(gè)字符串分別為:" << s1 << "和" << s2 << endl; string s3 = "hello", s4 = "world"; cout << "使用空格連接兩個(gè)字符串得到結(jié)果:" << s3 << " " << s4 << endl; return 0; }
這個(gè)程序?qū)⑻崾居脩糨斎雰蓚€(gè)字符串,使用空格分隔,并輸出這兩個(gè)字符串。同時(shí),將字符串"hello"和"world"使用空格連接起來(lái),并輸出結(jié)果。輸出結(jié)果如下:
請(qǐng)輸入兩個(gè)字符串,使用空格分隔:
hello world
您輸入的兩個(gè)字符串分別為:hello和world
使用空格連接兩個(gè)字符串得到結(jié)果:hello world
如果需要輸入包含空格的字符串,可以使用getline函數(shù);如果需要輸出多個(gè)字符串之間加空格,可以使用字符串連接符" "。
綜上所述,C++中的輸入輸出系統(tǒng)非常豐富,包括標(biāo)準(zhǔn)輸入輸出流、文件輸入輸出流、格式化輸入輸出流和字符串輸入輸出等。掌握這些知識(shí)點(diǎn)對(duì)于日后的C++編程非常重要,希望本文能為讀者提供幫助。
以上就是C++基礎(chǔ)學(xué)習(xí)之輸入輸出流詳解的詳細(xì)內(nèi)容,更多關(guān)于C++輸入輸出流的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語(yǔ)言用函數(shù)指針實(shí)現(xiàn)一個(gè)特別的計(jì)算器
函數(shù)指針是一個(gè)指針變量,它可以存儲(chǔ)函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言用函數(shù)指針實(shí)現(xiàn)計(jì)算器的方法,需要的朋友可以參考下2022-07-07OpenCV實(shí)現(xiàn)直線檢測(cè)并消除
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)直線檢測(cè)并消除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06VC++進(jìn)度條process Bar的用法實(shí)例
這篇文章主要介紹了VC++進(jìn)度條process Bar的用法,是進(jìn)行VC++應(yīng)用程序開(kāi)發(fā)中非常常見(jiàn)的實(shí)用技巧,需要的朋友可以參考下2014-10-10C++?計(jì)算時(shí)間差的五種方法小結(jié)
本文主要介紹了C++?計(jì)算時(shí)間差的五種方法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04C語(yǔ)言實(shí)現(xiàn)俄羅斯方塊的六種模式詳程建議收藏
遲早一定會(huì)掛掉的俄羅斯方塊,為什么至今仍是世界游戲之王?它是怎么編寫(xiě)的?本文將給大家詳細(xì)介紹六種模式的實(shí)現(xiàn),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值2022-02-02生成隨機(jī)數(shù)rand函數(shù)的用法詳解
本篇文章是對(duì)生成隨機(jī)數(shù)rand函數(shù)的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C語(yǔ)言示例講解do?while循環(huán)語(yǔ)句的用法
在不少實(shí)際問(wèn)題中有許多具有規(guī)律性的重復(fù)操作,因此在程序中就需要重復(fù)執(zhí)行某些語(yǔ)句。一組被重復(fù)執(zhí)行的語(yǔ)句稱之為循環(huán)體,能否繼續(xù)重復(fù),決定循環(huán)的終止條件2022-06-06C/C++ 中g(shù)cc和g++的對(duì)比與區(qū)別
這篇文章主要介紹了C/C++ 中g(shù)cc和g++的對(duì)比與區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-07-07C++各種數(shù)據(jù)類型所占內(nèi)存大小詳解
這篇文章主要介紹了C++各種數(shù)據(jù)類型所占內(nèi)存大小,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08