C++ cin.get及getline的用法



C++ cin.get及getline的用法

1.cin.get()

从指定的输入流中提取一个字符,函数的返回值就是这个字符。文件结束符会返回EOF,一般以-1代表EOF。

复制代码
1 #include<iostream>
2 using namespace std;
3
4 int main(){
5 char c;
6 while((c=cin.get()!=EOF))
7 cout.put(c);
8 return 0;
9 }
复制代码
2.cin.get(ch)

读取一个字符,赋值给ch,读取成功返回非0值,读取失败(遇到文件结束符)返回0。

复制代码
1 #include<iostream>
2 using namespace std;
3
4 int main(){
5 char c;
6 while(cin.get(c))
7 cout.put(c);
8 return 0;
9 }
复制代码
3.cin.get(字符数组,字符个数n,终止字符)

或cin.get(字符指针,字符个数n,终止字符)

读取n-1个字符,若在n-1个字符之前遇到终止字符,提前结束读取。

复制代码
1 #include<iostream>
2 using namespace std;
3
4 int main(){
5 char c[20];
6 cin.get(c,10,’\n’);
7 cout<<c<<endl;
8 return 0;
9 }
复制代码
或者使用char*

复制代码
1 #include<iostream>
2 using namespace std;
3
4 int main(){
5 char* c;
6 c = new char[20]; //动态指针使用前需要分配内存
7 cin.get(c,10,’\n’);
8 cout<<c<<endl;
9 return 0;
10 }
复制代码
4.cin.getline(字符数组(或指针),字符个数n,终止字符)


getline用法与带三个参数的get函数类似。

复制代码
1 #include<iostream>
2 using namespace std;
3 int main(){
4 char c[20];
5 cin.getline(c,20,’/');
6 cout<<c<<endl;
7 return 0;
8 }
复制代码
注意:

cin.getline与cin.get的区别:cin.get( , , )遇到终止字符停止读取后,指针不向后移动;

cin.getline( , , )遇到终止字符结束后,指针移到终止字符后。

 

getline()是string类的函数

getline() // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”

和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html

http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html