C++getline函数用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++getline函数⽤法

getline()函数是⼀个⽐较常见的函数。根据名字直接望⽂⽣义,就知道这个函数是来完成读⼊⼀⾏数据。下⾯就对C++ -- getline()函数的⽤法说明,以及getline()函数作为while条件的问题,总结⼀下:

在C++中本质上有两种getline函数:

第⼀种:在头⽂件<istream>中,是iostream类的成员函数。

第⼆种:在头⽂件<string>中,是普通函数。

///////////////////////////////////////////////////////////////////////////////////////////

第⼀种:在<istream>中的getline()函数有两种重载形式:

istream& getline (char* s, streamsize n );

istream& getline (char* s, streamsize n, char delim );

作⽤是:从istream中读取⾄多n个字符(包含结束标记符)保存在s对应的数组中。即使还没读够n个字符,如果遇到delim 或字数达到限制,则读取终⽌,delim都不会被保存进s对应的数组中。

*例程代码:

#include "stdafx.h"

#include <iostream>

//使⽤标准输⼊流和标准输出流。

// std::cin ; std::cout ; std::endl

int main()

{

char name[256], wolds[256];

std::cout << "Please input your name: ";

std::cin.getline(name, 256);

std::cout << "Please input your wolds: ";

std::cin.getline(wolds, 256);

std::cout << "The result is: " << name << ", " << wolds << std::endl;

std::cout << std::endl;

return 0;

}

//**输⼊:

Mr. Ling

You are wonderful !

//输出:

Mr. Ling, You are wonderful !

*通过字数限制和设置终⽌符修改的代码:

int main()

{

char name[6];

std::cout << "Please input your name: ";

std::cin.getline(name, 6, '#');

std::cout << "The result is: " << name << std::ends;

std::cout << std::endl;

return 0;

}

//**输⼊: //streamsize限定,截断输出

wonderful

//输出:

wonder

//**输⼊: //所设置的结束标识符,截断输出

won#derful

//输出:

won

第⼆种:在<string>中的getline函数有四种重载形式:

istream& getline (istream& is, string& str, char delim);

istream& getline (istream&& is, string& str, char delim);

istream& getline (istream& is, string& str);

istream& getline (istream&& is, string& str);

⽤法和上第⼀种类似,但是读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。函数的变量:

is :表⽰⼀个输⼊流,例如 cin。

str :string类型的引⽤,⽤来存储输⼊流中的流信息。

delim :char类型的变量,所设置的截断字符;在不⾃定义设置的情况下,遇到’\n’,则终⽌输⼊。

*例程代码:

#include "stdafx.h"

#include <iostream>

#include <string>

int main()

{

std::string name;

std::cout << "Please input your name: ";

std::getline(std::cin, name);

std::cout << "Welcome to here!" << std::ends << name << std::endl;

std::cout << std::endl;

return 0;

}

在输⼊时,直⾄遇到‘\n’或EOF,才终⽌输⼊操作。

//**输⼊:

wonderful

//输出:

wonderful

*例程代码:

nt main()

{

std::string name;

std::cout << "Please input your name: ";

std::getline(std::cin, name, '#');

std::cout << "Welcome to here!" << std::ends << name << std::endl;

std::cout << std::endl;

return 0;

}

//**输⼊:

wonderful#Mr.Ling

//输出:

wonderful

///////////////////////////////////////////////////////////////////////////////////////////

(EOF是C语⾔中为了区分有效数据和输⼊结束符的。

EOF的输⼊由系统锁定。windows下是ctrl+z,linux/unix下是ctrl+d。)

getline不是C库函数,⽽是C++库函数。它遇到以下情况发⽣会导致⽣成的本字符串结束:(1)到⽂件结束,(2)遇到函数的定界符,(3)输⼊达到最⼤限度。

getline()函数在while中作为条件判断。

#include "stdafx.h"

#include <iostream>

#include <string>

using namespace std;

int main()

相关文档
最新文档