C++输入cin,输出cout,换行endl,getline连续读取字符

简记:cin=键盘,cout=屏幕。

>>和<<指向代表数据流动方向。<<是流插入运算符,右操作数(运算符右边的值)会被插入到输出流中。

首先要包含:#include <iostream> 

using std::cin;

using std::cout;

using std::endl;

流操作元std::endl输出一个换行符,然后“刷新输出缓冲”。

而字符串中的\n是转义序列,使光标移动到下一行开始处。

 

cin>>a;//把键盘的数据放到变量a里。

cout<<"hello\n";//字符串数据流动到屏幕。

 

cin只能读入单个单词,其中间不能有空格。

getline可以读入一条语句,可以包含空格,遇到回车终止。

 

string nameOfCouese;

getline(cin,nameOfCourse);

函数调用getline();从标准输入流对象cin(即键盘)连续读取字符(包括空格符),直到遇到换行符为止。

读取的这些字符放入string类型的变量nameOfCourse中并丢弃换行符。

其中,在键入程序输入过程中按下回车时,会在输入流中插入一个换行符。

 

需要注意!使用getline要包含头文件string。

#include <string>

using std::string;

using std::getline;

getline同样属于命名空间std。

 


 

C++中本质上有两种getline函数,一种在头文件<istream>中,是istream类的成员函数。一种在头文件<string>中,是普通函数。

    1. 在<istream>中的getline函数有两种重载形式:

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

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

      作用是从istream中读取至多n个字符保存在s对应的数组中。即使还没读够n个字符,如果遇到换行符'\n'(第一种形式)或delim(第二种形式),则读取终止,'\n'或delim都不会被保存进s对应的数组中。

    2. 在<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中。

【转载自】 

C++中,getline函数的详解_百度知道 https://zhidao.baidu.com/question/377613227.html


getline不是C库函数,而是gcc的扩展定义或者C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。

1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。

C 有 fgets(), gets() 函数,gcc编译器扩展定义了getline()函数。

用于读取一行字符直到换行符,不读取换行符。

【转载自】

getline函数_百度百科 https://baike.baidu.com/item/getline%E5%87%BD%E6%95%B0/3932106?fr=aladdin

posted @ 2019-03-14 15:07  ostartech  阅读(2888)  评论(0编辑  收藏  举报