C++基礎(chǔ)學(xué)習(xí)之輸入輸出流詳解
C++是一種廣泛應(yīng)用的編程語言,其輸入和輸出是程序所必須的基本操作之一。輸入是指從外部獲取程序需要的數(shù)據(jù),輸出則是將程序處理的結(jié)果返回給用戶。本文將介紹C++中的輸入和輸出操作,包括輸入輸出流、文件輸入輸出等,希望對讀者有所幫助。
1. 輸入輸出流
在C++中,輸入輸出流是指對數(shù)據(jù)進(jìn)行讀寫操作的對象。C++中提供了兩種輸入輸出流,即標(biāo)準(zhǔn)輸入輸出流和文件輸入輸出流。
(1)標(biāo)準(zhǔn)輸入輸出流
標(biāo)準(zhǔn)輸入輸出流分別是stdin和stdout。其中,stdin代表標(biāo)準(zhǔn)輸入流,也就是鍵盤輸入的數(shù)據(jù);stdout代表標(biāo)準(zhǔn)輸出流,也就是屏幕上輸出的數(shù)據(jù)。它們分別可以用cin和cout來實現(xiàn)。
cin與>>符號一起使用,可從標(biāo)準(zhǔn)輸入流中讀取用戶輸入的數(shù)據(jù)。下面是一個示例:
#include <iostream> using namespace std; int main(){ int a, b; cout << "請輸入兩個整數(shù):" << endl; cin >> a >> b; cout << "您輸入的兩個整數(shù)分別為:" << a << "和" << b << endl; return 0; }
輸出結(jié)果如下:
請輸入兩個整數(shù):
2 3
您輸入的兩個整數(shù)分別為:2和3
cout用于將數(shù)據(jù)輸出到屏幕上。在輸出時,需要使用<<符號。下面是一個示例:
#include <iostream> using namespace std; int main(){ cout << "Hello, world!" << endl; return 0; }
輸出結(jié)果如下:
Hello, world!
(2)文件輸入輸出流
C++中提供了文件輸入輸出流類fstream,用于對文件進(jìn)行讀寫操作。其中,fstream類繼承自iostream類,包括了文件操作流的特性。fstream類是一個泛型流,可以支持各種數(shù)據(jù)類型,如整型、浮點(diǎn)型、字符型和字符串。下面是一個使用fstream讀取文件的示例:
#include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string fileName; cout << "請輸入文件名:" << endl; cin >> fileName; ifstream inFile(fileName.c_str()); if(!inFile.is_open()){ cout << "打開文件失敗!" << endl; }else{ string tempStr; while(getline(inFile, tempStr)){ cout << tempStr << endl; } } inFile.close(); return 0; }
這個程序會提示用戶輸入一個文件名,然后從這個文件中讀取數(shù)據(jù)并輸出。輸出結(jié)果如下:
請輸入文件名:
test.txt
This is a test file.
It is used for input and output operations.
2. 文件輸入輸出
文件輸入輸出是指將數(shù)據(jù)存儲在磁盤上的操作,通過C++中的文件輸入輸出流來實現(xiàn)。文件輸入輸出在實際開發(fā)中非常常用,比如對數(shù)據(jù)進(jìn)行存儲、讀取和處理等。下面是一個將數(shù)據(jù)寫入文件的示例:
#include <iostream> #include <fstream> using namespace std; int main(){ ofstream outFile("test.txt"); if(!outFile.is_open()){ cout << "打開文件失敗!" << endl; }else{ outFile << "This is a test file." << endl; outFile << "It is used for input and output operations." << endl; } outFile.close(); return 0; }
這個程序會將兩行文本存儲到一個名為test.txt的文件中。當(dāng)程序運(yùn)行時,會自動創(chuàng)建這個文件并寫入數(shù)據(jù)。如果文件已經(jīng)存在,那么將會覆蓋原有的文件。讀取文件中的數(shù)據(jù)方法已在上一節(jié)中進(jìn)行說明。
3. 格式化輸入輸出
格式化輸入輸出指的是將數(shù)據(jù)按照一定的格式顯示在屏幕上或存儲到文件中。C++中提供了一種可定制的格式化輸入輸出的方式,即格式化輸入輸出流。該類流函數(shù)包含在頭文件中,支持對輸出進(jìn)行單、雙字節(jié)對齊、設(shè)置小數(shù)位數(shù)等等。
下面是一個格式化輸出流的示例:
#include <iostream> #include <iomanip> using namespace std; int main(){ double val = 3.1415926; cout << fixed << setprecision(3) << val << endl; return 0; }
這個程序使用了fixed和setprecision函數(shù),并設(shè)置小數(shù)精度為3。輸出結(jié)果為:
3.142
另外,C++中還提供了一種格式化輸入輸出方式,即printf和scanf函數(shù)。這兩個函數(shù)也可以用于格式化輸入輸出,但是使用方法與
4. 字符串輸入輸出
C++中提供了string類型,用于存儲字符串,并支持輸入輸出操作。可以使用cin進(jìn)行字符串輸入,使用cout進(jìn)行字符串輸出。下面是一個字符串輸入輸出的示例:
#include <iostream> #include <string> using namespace std; int main(){ string s1, s2; cout << "請輸入兩個字符串:" << endl; cin >> s1 >> s2; cout << "您輸入的兩個字符串分別為:" << s1 << "和" << s2 << endl; return 0; }
這個程序?qū)⑻崾居脩糨斎雰蓚€字符串,然后輸出這兩個字符串。輸出結(jié)果如下:
請輸入兩個字符串:
hello world C++
您輸入的兩個字符串分別為:hello和world
使用getline函數(shù)可以讀取一行字符串。下面是一個使用getline函數(shù)的示例:
#include <iostream> #include <string> using namespace std; int main(){ string s; cout << "請輸入一個字符串:" << endl; getline(cin, s); cout << "您輸入的字符串為:" << s << endl; return 0; }
這個程序?qū)⑻崾居脩糨斎胍粋€字符串,并使用getline函數(shù)讀取該字符串。輸出結(jié)果如下:
請輸入一個字符串:
Hello, world!
您輸入的字符串為:Hello, world!
5. 空格處理
在C++中對于輸入的數(shù)據(jù),空格是默認(rèn)的分隔符,會自動將空格前后的字符分成多個字符串輸入。而在輸出時,空格是默認(rèn)的連接符,會將多個字符串連接成一個字符串進(jìn)行輸出。下面是一個示例:
#include <iostream> #include <string> using namespace std; int main(){ string s1, s2; cout << "請輸入兩個字符串,使用空格分隔:" << endl; cin >> s1 >> s2; cout << "您輸入的兩個字符串分別為:" << s1 << "和" << s2 << endl; string s3 = "hello", s4 = "world"; cout << "使用空格連接兩個字符串得到結(jié)果:" << s3 << " " << s4 << endl; return 0; }
這個程序?qū)⑻崾居脩糨斎雰蓚€字符串,使用空格分隔,并輸出這兩個字符串。同時,將字符串"hello"和"world"使用空格連接起來,并輸出結(jié)果。輸出結(jié)果如下:
請輸入兩個字符串,使用空格分隔:
hello world
您輸入的兩個字符串分別為:hello和world
使用空格連接兩個字符串得到結(jié)果:hello world
如果需要輸入包含空格的字符串,可以使用getline函數(shù);如果需要輸出多個字符串之間加空格,可以使用字符串連接符" "。
綜上所述,C++中的輸入輸出系統(tǒng)非常豐富,包括標(biāo)準(zhǔn)輸入輸出流、文件輸入輸出流、格式化輸入輸出流和字符串輸入輸出等。掌握這些知識點(diǎn)對于日后的C++編程非常重要,希望本文能為讀者提供幫助。
以上就是C++基礎(chǔ)學(xué)習(xí)之輸入輸出流詳解的詳細(xì)內(nèi)容,更多關(guān)于C++輸入輸出流的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
生成隨機(jī)數(shù)rand函數(shù)的用法詳解
本篇文章是對生成隨機(jī)數(shù)rand函數(shù)的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C++各種數(shù)據(jù)類型所占內(nèi)存大小詳解
這篇文章主要介紹了C++各種數(shù)據(jù)類型所占內(nèi)存大小,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08