一、cin
1.cin使用空白(空格、制表符和換行符)來確定字符串結束的位置,並且對於換行符,cin會把換行符留在輸入隊列。cin讀取字符串放到數組中,並自動在結尾添加空字符。
例如:
char name[20]; cin>>name; 輸入:David Smith cin只會把David放到name數組中並添加空字符'\0'
cout << "What year was your house built?\n"; int year; cin >> year; // cin.get(); cout << "What is its street address?\n"; char address[80]; cin.getline(address, 80); cout << "Year built: " << year << endl; cout << "Address: " << address << endl; cout << "Done!\n"; // cin.get(); return 0; 輸入: 1996 如果沒有cin.get(),cin>>year會把換行符留在輸入隊列,則cin.getline會把讀取換行符並丟棄掉,address字符串為空
2.發送給cin的輸入被緩沖,只有用戶按下回車鍵后,輸入的內容才會發送給程序。
char ch; int count = 0; // use basic input cout << "Enter characters; enter # to quit:\n"; cin >> ch; // get a character while (ch != '#') // test the character { cout << ch; // echo the character ++count; // count the character cin >> ch; // get the next character } cout << endl << count << " characters read\n"; 輸入: see ken run#really fast 輸出: seekenrun
cin忽略空格和換行符,所以輸入的空格沒有回顯;發送給cin的輸入被緩沖,所以輸入#后,后面還可以輸入其他字符;
二、cin.getline()
getline 讀取一行字符串,直到到達換行符,隨后getline將丟棄換行符。
三、cin.get()
1.cin.get(str,num)
讀取一行字符串,直到到達換行符,將換行符保留到輸入序列中。
2.cin.get(char) 讀取一個字符
cin.get(ch)讀取輸入中的下一個字符(包括空格和換行符),但輸入仍被緩沖。
3.cin.get() 讀取緩沖區的一個字符,返回值為char。
