C++中常用的几种输入字符串的方式
1.scanf
scanf如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理
#include
using namespace std; int main (){
char s[100]; scanf("%s",s); printf("%s",s); } //输入 //输出
2. cin
cin输入遇到空格、回车、Tab就结束输入,进入下个输入
#include
using namespace std; int main (){
char s[100]; cin>>s; cout<<s; } //输入 //输出
3. cin.get
#include
using namespace std; int main (){
char ch; ch=cin.get(); //获取一个字符 // cin.get(ch);//第二种形式 cout<<ch<<endl; } //输入: //输出:1
#include
using namespace std; int main (){
char a[20]; cin.get(a,20); //可以输入多个字符串,中间空格隔开。 cout<<a<<endl; } //输入:123 123 123 //输出:123 123 123 //输入:abcdeabcdeabcdeabcdeabcde (输入25个字符) //输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
4. cin.getline()
#include
using namespace std; int main (){
char m[20]; cin.getline(m,5); //与上面基本相同。 cout<<m<<endl; cin.getline(m,5,'x'); //当设置了结束字符后,在结束字符之前输入换行不会影响字符的输入,此时的换行会存入字符串中 cout << m; return 0; } 输入 输出 1231//接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出 如果把5改成20: 输入:jkljkljkl 输出:jkljkljkl 输入:jklf fjlsjf fjsdklf 输出:jklf fjlsjf fjsdklf
5.getline
#include
#include
using namespace std; int main (){
string str; getline(cin,str); cout<<str<<endl; getline(cin,str,'x'); //当设置了结束字符后,在结束字符之前输入换行不会影响字符的输入,此时的换行会存入字符串中 cout << str; } 输入: 输出:
6.gets()
#include
#include
using namespace std; int main (){
char str[100]; gets(str); cout<<str<<endl; } 输入 输出
gets很方便但是有个缺点,就是不能输入string类,还有就是输入数组时可能会有越界的风险。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224950.html原文链接:https://javaforall.net
