C++輸入字元串的幾種方法
- cin
- cin.get()
- cin.getline()
- getline()
- gets()
- getchar()
C++中的字元串輸入方式有:
1.cin >>
2.cin.get()
3.cin.getline()
4.getline()
5.gets()
6.getchar()
cin
第一種用法是逐個輸入數字或者字元,中間用空格隔開。這是最基本的。
第二種用法是讀入一個字元串,遇到”空格、“TAB”、“回車”都會結束,例如:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin >> s;
cout << s;
}
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4AzN5MDNwkTM3EjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
cin.get()
用法1:cin.get(字元變量名)可以用來接受字元
#include<iostream>
#include<string>
using namespace std;
int main()
{
char ch;
cin.get(ch);//或者ch = cin.get();
cout << ch << endl;//隻能輸出一個字元
}
用法2:cin.get(字元數組名,接受字元數目)用來接收一行字元串,可以接收空格
#include<iostream>
using namespace std;
int main()
{
char s[50];
cin.get(s, 20);//可以輸入多個單詞,中間空格隔開,空格也計算在内
cout << s << endl;
}
用法3:cin.get(無參數),無參數主要用于收納輸入流中的不需要的字元,或者收納回車,彌補cin.get(字元數字名,接收字元數目)的不足。
cin.getline()
用法1:接收一個字元串,可以接受空格并輸出
#include<iostream>
using namespace std;
int main()
{
char s[25];
cin.getline(s,15);
cout << s << endl;
return 0;
}
用法2:cin.getline(接受字元串到n, 接收個數6,結束字元)
#include<iostream>
using namespace std;
int main()
{
char s[25];
cin.getline(s,25,'n');
cout << s << endl;
return 0;
}
用法3:cin.getline(s[i], n)
應用于二維數組中
#include<iostream>
using namespace std;
int main()
{
char s[25][45];
for(int i = 0; i < 3 ; i++ )
{
cout << "請輸入第" << i + 1 << "個字元串" << endl;
cin.getline(s[i],8);
}
cout << endl;
for(int i = 0; i < 3; i ++ )
cout << "輸出s[" << i << "]的值:" << s[i] <<endl;
return 0;
}
getline()
接收一個字元串,可以接受空格并輸出,在頭檔案< string >中
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin, s);
cout << s;
return 0;
}
gets()
用法1:
接受一個字元串,可以接受空格并輸出
#include<iostream>
using namespace std;
int main()
{
char s[50];
gets(s);//輸入什麼,輸出什麼
cout << s << endl;
}
用法2:類似于上面getline()中的多元數組
#include<iostream>
using namespace std;
int main()
{
char s[25][45];
for(int i = 0; i < 3 ; i++ )
{
cout << "請輸入第" << i + 1 << "個字元串" << endl;
gets(s[i]);
}
cout << endl;
for(int i = 0; i < 3; i ++ )
cout << "輸出s[" << i << "]的值:" << s[i] <<endl;
return 0;
}
getchar()
接收一個字元
#include<iostream>
using namespace std;
int main()
{
char ch;
ch = getchar();//不能寫作getchar(ch)
cout << ch << endl;
return 0;
}
循環輸入時,作為判斷條件
#include<iostream>
using namespace std;
int main()
{
char ch;
while((ch = getchar()) != '\n')
{
cout << ch;
}
return 0;
}
在字元串這比較暈的,可以了解了解~~~