c++中cin實現(xiàn)輸入字符串方式
c++ cin如何輸入字符串
1、cin
cin會過濾掉不可見字符(如空格、回車、tab等)。
如果不想略過空白字符,可以使用noskipws流控制。
cin>>noskipws>>input[i]
2、cin.get()
cin.get()可以用來接收字符
cin.get(字符數(shù)組名,接收字符數(shù)目)用來接收一行字符串,可以接收空格。
char a[20]; cin.get(a,20); cout<<a<<endl;
cin.get()默認接收一個字符,以tab鍵、space鍵和enter鍵結(jié)束。
3、cin.getline()
接收一個字符串,可以接收空格并輸出
cin.getline(m,5)
接收5個字符到m中,其中最后一個為‘\0’,所以只看到4個字符輸出。
4、getline()
接收一個字符串,可以接收空格并輸出,需包含#include
getline(cin,str);
c++ cin輸入 不定長輸入
C++ 不定長輸入,保存進數(shù)組,并打印
#include<iostream> #include<vector> using namespace std; ? int main() { ?? ?vector<int> arr; ?? ?int i; ?? ?do { ?? ??? ?cin >> i; ?? ??? ?arr.emplace_back(i); ?? ?} while (cin.get() != '\n'); ?? ?for (auto it = arr.begin(); it != arr.end(); it++) { ?? ??? ?cout << *it << " "; ?? ?} ?? ?cout << endl; ?? ?return 0; }
輸出
1 2 3 4 5 6 7
1 2 3 4 5 6 7
cin.get()獲取輸入一個字符,包含空格或換行等特殊字符,cin自動忽視空格或換行等特殊字符,cin讀取一個個數(shù)字,cin.get()讀取空格...以此交叉讀取。
#include<iostream> #include<vector> using namespace std; ? int main() { ?? ?vector<int> arr; ?? ?int i; ?? ?while (cin.get() != '\n') { ?? ??? ?cin >> i; ?? ??? ?arr.emplace_back(i); ?? ?}? ?? ?for (auto it = arr.begin(); it != arr.end(); it++) { ?? ??? ?cout << *it << " "; ?? ?} ?? ?cout << endl; ?? ?return 0; }
輸出
1 2 3 4 5 6 7
2 3 4 5 6 7
cin.get()讀取第一個數(shù)字,cin忽視第一個空格讀取第二個數(shù)字,cin.get()讀取第二個空格...以此交叉讀取,因此第一個數(shù)字1沒被cin讀取。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決C語言中使用scanf連續(xù)輸入兩個字符類型的問題
這篇文章主要介紹了解決C語言中使用scanf連續(xù)輸入兩個字符類型的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12C語言實現(xiàn)十六進制與二進制的相互轉(zhuǎn)換
這篇文章主要為大家詳細介紹了如何利用c語言實現(xiàn)將文件中十六進制數(shù)據(jù)與二進制數(shù)據(jù)相互轉(zhuǎn)換,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以學習一下2022-11-11VS2019 更新MSDN并創(chuàng)建快捷方式的實現(xiàn)
這篇文章主要介紹了VS2019 更新MSDN并創(chuàng)建快捷方式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03