c++中 getline(), cin.get(), cin.getline() 总结
2014-08-10 14:45
357 查看
cin.get() 与 cin.getline() 很相似,参数只能接受char数组。
只是cin.get() 把分界符保留在输入流中,而cin.getline()丢弃分界符。
下面代码示例详细说明:
getline() 与cin.getline() 功能相同,并且都会丢弃分界符。不同点在于:
getline() 是在string头文件中,定义的是一个全局的函数,函数声明是istream& getline ( istream& is, string& str, char delim )与
istream& getline ( istream& is, string& str );接受参数为string类型。
cin.getline()是istream的成员函数,函数声明是istream& getline (char* s, streamsize n )与istream& getline (char* s, streamsize n, char delim );接受参数为char数组。
下面是getline()函数的代码示例:
只是cin.get() 把分界符保留在输入流中,而cin.getline()丢弃分界符。
下面代码示例详细说明:
#include <iostream> #include <string> int main() { using namespace std; string s; char ch[20]; cout << "Please enter a string : \n"; // cin.getline(s,2); //error // getline(s,cin); //error cout << "s: " << s << endl; cout << "cin.get(ch,20):\n"; cin.get(ch,20); //读取一行,或直到读满19个字符。 换行符'\n'保留在输入流中 cout << "ch: " << ch << endl; cout << "cin.get(ch,20,'#'):\n"; cin.sync(); //因为'\n'被保留在输入流中,这里清空流。 cin.get(ch,20,'#'); //直到读满19个字符(可多行,或者读取到'#','#'被放在输入流中)。 cout << "ch: " << ch << endl; //cin.get()可以用来接收字符,不会略过空白字符,包括空格、回车、Tab等。返回类型为整型。 cout << "Next chracter: " << (char)cin.get() <<endl; cout << "cin.getline(ch,20):\n"; cin.sync(); cin.getline(ch,20); //读取一行,或直到读满19个字符。丢弃换行符'\n'. cout << "ch: " << ch << endl; cout << "cin.getline(ch,20,'#'):\n"; // cin.sync(); cin.getline(ch,20,'#'); //直到读满19个字符(可多行,或者读取到'#','#'被丢弃)。 cout << "ch: " << ch << endl; //cin.get(ch[0])可以用来接收字符,不会略过空白字符,包括空格、回车、Tab等。返回类型为地址。 cin.get(ch[0]); cout << "Next chracter: " << ch[0] <<endl; return 0; }
getline() 与cin.getline() 功能相同,并且都会丢弃分界符。不同点在于:
getline() 是在string头文件中,定义的是一个全局的函数,函数声明是istream& getline ( istream& is, string& str, char delim )与
istream& getline ( istream& is, string& str );接受参数为string类型。
cin.getline()是istream的成员函数,函数声明是istream& getline (char* s, streamsize n )与istream& getline (char* s, streamsize n, char delim );接受参数为char数组。
下面是getline()函数的代码示例:
#include <iostream> #include <string> int main() { using namespace std; string s; char ch[20]; // getline(cin,ch); //error cout << "ch :" << ch << endl; cout << "Input string (getline(cin,s)) :\n"; getline(cin,s); cout << "s :" << s << endl; cout << "Input string (getline(cin,s,'#')) :\n"; getline(cin,s,'#'); //丢弃分界符'#' cout << "s :" << s << endl; cout << "Next chracter: " << (char)cin.get() <<endl; return 0; }
相关文章推荐
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- [转]C++中cin、cin.get()、cin.getline()、getline()函数的简单总结
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- 【转载】C++中cin、cin.get()、cin.getline()、getline()、gets()函数详解
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()函数详解 .
- C++ 读书笔记之 getline与cin.getline的区别
- 【语法回顾】C++中的输入控制:cin,getline,cin.getline,gets(转)
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法