1 //cin: 2 #include<iostream> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 #include<algorithm> 7 using namespace std; 8 int main() 9 { 10 char a[20]; 11 cin>>a; 12 cout<<a<<endl; 13 }
cin只接收一个字符串,遇空格,回车就结束
输入:jkljkljkl
输出:jkljkljkl
输入:jkljkl jkljkl //遇空格结束
输出:jkljkl
1 //cin.getline : 2 #include<iostream> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 #include<algorithm> 7 using namespace std; 8 int main() 9 { 10 char a[20]; 11 cin.getline(a,5); 12 cout<<a<<endl; 13 }
<iostream>
接收一个字符串,可以接收空格并输出
输入:jkljkljkl
输出:jklj
输入:ab fvtd
输出:ab f
接收5个字符到a中,其中最后一个为' ',
所以只看到4个字符输出;
如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl
输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
延伸:
1、cin.getline()实际上有三个参数,
cin.getline
(接收字符串的变量,接收字符个数,结束字符)
2、当第三个参数省略时,系统默认为' '
3、如果将例子中cin.getline()
改为cin.getline(a,5,'a');
当输入jlkjkljkl时
输出jklj,
输入jkaljkljkl时,
输出jk
输入:
qwertyuiop
qwert 123 456
isabvgfewrjnv kjsbd
输出:
qwertyuiop //m[0]
qwert 123 456 //m[1]
isabvgfewrjnv kjsbd //m[2]
1 cin.getline 在多维数组里的用法: 2 #include<iostream> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 using namespace std; 7 int main() 8 { 9 char a[3][20]; //大概3是限制字符串个数的 10 //20是限制每个字符串长度的 。大概吧。 11 for(int i=0;i<3;i++) 12 //这个地方必须从0开始 13 cin.getline (a[i],20); 14 for(int i=0;i<3;i++) 15 cout<<endl<<a[i]; 16 return 0; 17 }
<cstring>
接收一个字符串,可以接收空格并输出。
输入:jkljkljkl
输出:jkljkljkl
输入:jkl jfksldfj jklsjfl
输出:jkl jfksldfj jklsjfl
1 getline: 2 #include<iostream> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 #include<algorithm> 7 using namespace std; 8 int main() 9 { 10 string a; 11 getline(cin,a); 12 cout<<a<<endl; 13 }
1 gets(): 2 #include<iostream> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 using namespace std; 7 int main() 8 { 9 char a[22]; 10 gets(a); 11 printf("%s",a); 12 }
<cstdio>
gets可以读空格,但不读回车
字符串接收结束后自动加' '。
(应该是用'
'代替了' ')
输入: EAFWEG GEWsdv(
)
输出: EAFWEG GEWsdv
1 scanf(): 2 #include<iostream> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 using namespace std; 7 int main() 8 { 9 char a[22]; 10 scanf("%s",a); 11 printf("%s",a); 12 }
<cstdio>
不接收空格,回车
输入:
wrbe awegfre
输出:
wrbe
getchar():
只接收一个字符(第一个)
参考: http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html