一、istream和ostream基本介紹
在C++中,iostream庫提供了兩個基本的流類:istream和ostream。這兩個類分別代表了輸入和輸出流。istream類提供了從輸入設備(如鍵盤)讀取內容的功能,而ostream類則提供向輸出設備(如控制台)寫入內容的功能。其實,iostream庫中的其他流類都是通過這兩個基本的流類派生出來的。
對於輸入流和輸出流,我們可以用cin和cout這兩個標準流來進行操作。例如:
#include <iostream> using namespace std; int main() { int num; cout << "請輸入一個整數:" << endl; cin >> num; cout << "你輸入的是:" << num << endl; return 0; }
上面的代碼使用了cin和cout來分別進行輸入和輸出操作。其中,endl代表換行符,<<則為”流插入運算符”,用於將右側的內容插入到左側的流之中;>>則為”流提取運算符”,用於從右側的流中提取內容到左側的變量中。這兩個運算符的詳細信息可以在iostream庫中找到。
二、輸入流的相關操作
C++中,輸入流有很多種讀取方式,下面介紹其中的幾種:字符輸入、字符串輸入、按格式輸入等。
1. 字符輸入
get()函數可以從一個流中讀取一個字符。get()函數有兩種調用方式:
int get(); istream& get(char& ch);
第一種調用方式返回讀取的字符,而第二種調用方式則是將讀取到的字符存儲在一個char類型的變量中,並通過返回一個istream的引用來讓調用代碼可以繼續使用cin等流類。以下是示例代碼:
#include <iostream> using namespace std; int main() { char ch; cin.get(ch); // 讀取一個字符 cout << "讀取到的字符是 " << ch << endl; return 0; }
2. 字符串輸入
getline()函數可以從一個流中讀取一行字符串。getline()函數有兩種調用方式:
istream& getline (istream& is, string& str, char delim); istream& getline (istream& is, string& str);
第一種調用方式需要指定一個字符串結束的分隔符,而第二種調用方式則默認使用換行符作為字符串的結束標誌。以下是示例代碼:
#include <iostream> #include <string> using namespace std; int main() { string str; getline(cin, str); // 讀取一行字符串 cout << "讀取到的字符串是 " << str << endl; return 0; }
3. 按格式輸入
可以使用cin的格式化輸入函數來實現按照指定格式讀取輸入數據,例如scanf()一樣的佔位符%d、%f等,或者使用std::ios::setw(n)來設置讀取的寬度。以下是示例代碼:
#include <iomanip> // 需要包含這個頭文件 #include <iostream> using namespace std; int main() { int a, b; cout << "請輸入兩個整數:"; cin >> setw(5) >> a; // 最多讀取5個字符 cin.ignore(); // 忽略掉一個字符 cin >> b; cout << "讀取到的數據是:" << a << ", " << b << endl; return 0; }
三、輸出流的相關操作
C++中,輸出流也有很多種寫入方式,下面介紹其中的幾種:字符輸出、字符串輸出、按格式輸出等。
1. 字符輸出
put()函數可以將一個字符寫入到某個流中。以下是示例代碼:
#include <iostream> using namespace std; int main() { char ch = 'a'; cout.put(ch); // 輸出一個字符 return 0; }
2. 字符串輸出
可以使用cout來輸出一個字符串或者字符數組,也可以使用write()函數輸出一段二進制數據。以下是示例代碼:
#include <iostream> #include <string> using namespace std; int main() { string str = "Hello World!"; cout << str << endl; // 輸出一個字符串 char buffer[] = { 'h', 'e', 'l', 'l', 'o' }; cout.write(buffer, sizeof(buffer)); // 輸出一段二進制數據 return 0; }
3. 按格式輸出
可以使用cout的格式化輸出函數來實現按照指定格式輸出數據,例如printf的佔位符%d、%f等,或者使用std::ios::setw(n)來設置輸出的寬度。以下是示例代碼:
#include <iomanip> // 需要包含這個頭文件 #include <iostream> using namespace std; int main() { int a = 123, b = 456; cout << setw(5) << a << ", " << setw(5) << b << endl; return 0; }
四、總結
通過本文的介紹,我們了解了C++ iostream庫的兩個基本流類:istream和ostream,以及它們的常見輸入輸出操作。還涉及了如字符輸入、字符串輸入、按格式輸入、字符輸出、字符串輸出、按格式輸出等內容。希望讀者在使用C++ iostream進行輸入輸出操作時,能夠更加得心應手!
原創文章,作者:IFKI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/133767.html