C++基礎(chǔ)學(xué)習(xí)之輸入輸出流詳解
C++是一種廣泛應(yīng)用的編程語言,其輸入和輸出是程序所必須的基本操作之一。輸入是指從外部獲取程序需要的數(shù)據(jù),輸出則是將程序處理的結(jié)果返回給用戶。本文將介紹C++中的輸入和輸出操作,包括輸入輸出流、文件輸入輸出等,希望對(duì)讀者有所幫助。
1. 輸入輸出流
在C++中,輸入輸出流是指對(duì)數(shù)據(jù)進(jìn)行讀寫操作的對(duì)象。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來實(shí)現(xiàn)。
cin與>>符號(hào)一起使用,可從標(biāo)準(zhǔn)輸入流中讀取用戶輸入的數(shù)據(jù)。下面是一個(gè)示例:
#include <iostream>
using namespace std;
int main(){
int a, b;
cout << "請輸入兩個(gè)整數(shù):" << endl;
cin >> a >> b;
cout << "您輸入的兩個(gè)整數(shù)分別為:" << a << "和" << b << endl;
return 0;
}
輸出結(jié)果如下:
請輸入兩個(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)行讀寫操作。其中,fstream類繼承自iostream類,包括了文件操作流的特性。fstream類是一個(gè)泛型流,可以支持各種數(shù)據(jù)類型,如整型、浮點(diǎn)型、字符型和字符串。下面是一個(gè)使用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;
}
這個(gè)程序會(huì)提示用戶輸入一個(gè)文件名,然后從這個(gè)文件中讀取數(shù)據(jù)并輸出。輸出結(jié)果如下:
請輸入文件名:
test.txt
This is a test file.
It is used for input and output operations.
2. 文件輸入輸出
文件輸入輸出是指將數(shù)據(jù)存儲(chǔ)在磁盤上的操作,通過C++中的文件輸入輸出流來實(shí)現(xiàn)。文件輸入輸出在實(shí)際開發(fā)中非常常用,比如對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、讀取和處理等。下面是一個(gè)將數(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;
}
這個(gè)程序會(huì)將兩行文本存儲(chǔ)到一個(gè)名為test.txt的文件中。當(dāng)程序運(yùn)行時(shí),會(huì)自動(dòng)創(chuàng)建這個(gè)文件并寫入數(shù)據(jù)。如果文件已經(jīng)存在,那么將會(huì)覆蓋原有的文件。讀取文件中的數(shù)據(jù)方法已在上一節(jié)中進(jìn)行說明。
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 << "請輸入兩個(gè)字符串:" << endl;
cin >> s1 >> s2;
cout << "您輸入的兩個(gè)字符串分別為:" << s1 << "和" << s2 << endl;
return 0;
}
這個(gè)程序?qū)⑻崾居脩糨斎雰蓚€(gè)字符串,然后輸出這兩個(gè)字符串。輸出結(jié)果如下:
請輸入兩個(gè)字符串:
hello world C++
您輸入的兩個(gè)字符串分別為:hello和world
使用getline函數(shù)可以讀取一行字符串。下面是一個(gè)使用getline函數(shù)的示例:
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
cout << "請輸入一個(gè)字符串:" << endl;
getline(cin, s);
cout << "您輸入的字符串為:" << s << endl;
return 0;
}
這個(gè)程序?qū)⑻崾居脩糨斎胍粋€(gè)字符串,并使用getline函數(shù)讀取該字符串。輸出結(jié)果如下:
請輸入一個(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 << "請輸入兩個(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"使用空格連接起來,并輸出結(jié)果。輸出結(jié)果如下:
請輸入兩個(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++輸入輸出流的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
wince程序防止創(chuàng)建多個(gè)實(shí)例實(shí)現(xiàn)互斥作用
什么時(shí)候用的互斥?當(dāng)你的程序只允許同時(shí)打開一個(gè)的時(shí)候,就可以通過互斥來實(shí)現(xiàn),下面說的互斥,主要是針對(duì)防止程序創(chuàng)建多個(gè)實(shí)例這種情況來實(shí)現(xiàn)的2014-02-02
c語言中字符串分割函數(shù)及實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猚語言中字符串分割函數(shù)及實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05

