[C++基礎]031_如何正確獲取用戶的輸入


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等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM