cin cout
cin、cout是對象,以cout為例說明。
cout是ostream類的對象。聲明在iostream文件中,
#ifdef _M_CEE_PURE
__PURE_APPDOMAIN_GLOBAL extern istream cin, *_Ptr_cin;
__PURE_APPDOMAIN_GLOBAL extern ostream cout, *_Ptr_cout;
__PURE_APPDOMAIN_GLOBAL extern ostream cerr, *_Ptr_cerr;
__PURE_APPDOMAIN_GLOBAL extern ostream clog, *_Ptr_clog;
定義我猜應該在某個.lib .dll中。
cout<<"hi";之所以與printf("hi");差不多,是因為ostream類重載了operator<<函數。
ostream &myCout=cout;myCout<<"hi";也能正常運行。
cin
在單詞區配時,常以0~9,a~z,A~Z以外的單詞作為單詞間分隔,可用
int isalnum(char n); //不為以上三種情況時返回0
還有
isdigit();isalpha();
當需要讀入一行字符串,字符串中可能含有空格' '時,可用:
string a; getline(cin,a);
一般的ACM題都有多組測試數據,若事先不告訴幾組,可:
while (cin>>a){ ... }
若一組數據包含兩行字符串,可以:
while(getline(cin,str_1) && getline(cin,str_2){ ... }
有些題涉及到累加,注意用
unsigned long long
按行讀整數
cin>>遇到回車或空格停止本次讀入,流中的空格或回車被拋棄。
cin.get(),一次讀一個字符,空格或回車可在流中。scanf("%c",&ch)的形式同cin.get();.
char str[100]; scanf("%s",str); 這種形式也是讀不進空格和回車的。有些輸入有數字、空格、回車和字符。讀入str後對str[0]進行判斷,很妙哦。
文本文件為 “空格 空格 空格 回車 空格 空格 回車 空格 回車”,程序結果見下:
cout
undone
最後更新:2017-04-03 12:55:22