C++getline函数用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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()