c++輸入cin、輸出cout
- 1 cin
- 2 cout
- 3 cin和cout說明
c++在c語言的輸入、輸出函數的基礎上進行了封裝。
1 cin
c可以理解為控制臺,in可以理解為輸入。
參考代碼:
void f(){int a;float b;double c;char d;cin>>a>>b>>c>>d;//這里和scanf是一樣的功能
}void f2(){char st[20]={"\0"};cin>>st;//不讀空格cin.getline(st,20);//讀取一行的20個字符,包括空格,不包括換行符(cin>>st).get();//不讀空格,讀完后吸收多余換行符
}
2 cout
參考代碼
void f(){int a=1;float b=2.2f;cout<<a<<b;//輸出變量,類似printfchar st[]="Hello, world.";cout<<"Hello, world.";//輸出字符串cout<<st;//輸出字符串cout<<endl;//輸出換行符endl,endl會刷新流
}#include<iomanip>
//格式輸出字符串
void f2(){float b=2.2f;cout<<fixed<<setprecision(3)<<b;//按3位小數輸出浮點數int a=4;cout<<step(5)<<a;
}
其中endl:end of line。在c語言的換行的基礎上新增了很多東西,例如刷新輸出流等。
3 cin和cout說明
說明:
-
使用cout標準輸出對象(控制臺)和cin標準輸入對象(鍵盤)時,必須包含
< iostream >
頭文件以及按命名空間使用方法使用std。 -
cout和cin是全局的流對象,endl是特殊的C++符號,表示換行輸出,他們都包含在包含
<iostream>
頭文件中。 -
<<
是流插入運算符,>>
是流提取運算符(從控制臺提取一個數據,將數據的值給>>
后面的變量)。如果有學過運算符重載,可以知道這個提取運算符本質就是一個函數。
測試樣例:
#include<iostream>
using namespace std;int main() {int a, b;double c;cin.operator>>(a);//可以理解為cin的成員函數cin.operator>>(b).operator>>(c);(cout.operator<<(a) << b).operator<<(c);//加()調整優先級return 0;
}
-
使用C++輸入輸出更方便,不需要像printf/scanf輸入輸出時那樣,需要手動控制格式。C++的輸入輸出可以自動識別變量類型。但在操作的數據量比較大時cin和cout會消耗更多的時間,所以使用再方便也要分情況使用。
-
實際上cout和cin分別是ostream和istream類型的對象,>>和<<也涉及運算符重載等知識,
注意:早期標準庫將所有功能在全局域中實現,聲明在.h后綴的頭文件中,使用時只需包含對應
頭文件即可,后來將其實現在std命名空間下,為了和C頭文件區分,也為了正確使用命名空間,
規定C++頭文件不帶.h
;舊編譯器(vc 6.0)中還支持<iostream.h>
格式,后續編譯器已不支持,因
此推薦使用<iostream>+std
的方式:
#include<iostream>
using namespace std;
ps:關于cout和cin還有很多更復雜的用法,比如控制整形輸出進制格式等等。因為C++兼容C語言的用法,這些用得不是很多,以后有機會再詳細介紹。