1. 獲取輸入的第一個程序
1 #include <iostream> 2 using namespace std; 3 4 int main(){ 5 6 char str[15]; 7 cin>>str; 8 cout<<str<<endl; 9 10 system("pause"); 11 return 0; 12 }
上面的程序可以獲取用戶的輸入,但是如果用戶輸入如下字符串:
abcd cdef
輸出結果不是我們想要的“abcd cdef”,而是“abcd”。這說明cin認為空格是字符串結束標志。
另外,如果我們的用戶輸入如下字符串:
abcdefghigklmnopklameads
由於輸入字符串的長度超過了字符數組的長度,發生越界,程序雖然能打印出來輸入的字符,但是程序運行發生錯誤。
2. 解決空格的問題
1 #include <iostream> 2 using namespace std; 3 4 int main(){ 5 6 char str[15]; 7 8 gets(str); 9 cout<<str; 10 system("pause"); 11 return 0; 12 }
用gets函數可以解決空格問題,輸入“abcd cdef”時,可以打印出來。
但是輸入超過字符數組長度的字符串時,仍然會報錯。
3. 解決空格和輸入字符串長度過長的問題
1 #include <iostream> 2 using namespace std; 3 4 int main(){ 5 6 char str[15]; 7 8 cin.get(str, 15); 9 cout<<str; 10 11 system("pause"); 12 return 0; 13 }
上面程序就可以獲取不超過字符數組長度的字符了。注意cin還有很多可以使用的函數,比如getline等。