好文档 - 专业文书写作范文服务资料分享网站

cin、cin.getline()、getline()、cin.get()等的用法区别

天下 分享 时间: 加入收藏 我要投稿 点赞

一、cin>>

用法1:输入一个数字或字符 #include using namespace std; main () {

int a; char b; cin>>a>>b;

cout<

输入&输出:5 c

用法2:接收一个字符串,遇“空格”、“Tab”、“Enter”就结束 #include using namespace std; int main () {

char a[20]; cin>>a;

cout<

*输入:abcdef 输出:abcdef

输入:abchj libg //遇空格结束 输出:abchj

二、cin.getline()

用法:接收一个字符串,可以接收空格并输出 二参数函数原形:cin.getline(char []n) #include using namespace std; int main () {

char m[20]; cin.getline(m5);

//char* m;m=new char[20];cin.getline(m5); cout<

*输入:abcdefg 输出:abcd

接收5个字符到m中,其中最后一个变为’\\0’,所以只看到4个字符输出; *如果把5改成15:

输入:abcd efghl 输出:abcd efghl 【Attention】:

cin.getline()也有三个参数形式:cin.getline(字符数组(或指针)接收字符个数结束字符),此情况下输入遇到结束字符则结束(当第三个参数省略时,系统默认为’\\0’);如果上面的cin.getline(m5)改为cin.getline(m5‘d’),则输出结果为abc。

三、cin.get()(用法与cin.getline类似)

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

2.(二参数)cin.get(字符数组首地址,字符个数n);

3.(三参数)cin.get(字符数组(或指针),字符个数n,终止字符)读取n-1个字符,若在n-1个字符之前遇到终止字符,提前结束读取。

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

四、getline()

用法:接收一个字符串,可以接收空格并输出,需包含“#include” 函数原形:getline(cinstring类型的变量) #include #include using namespace std; int main () {

string str;

getline(cinstr); cout<

*输入:abc abcdf achd 输出:abc abcdf achd

五、C中介绍的gets()

gets()的用法:读取整行输入(包括空格),直至遇到换行符然后丢弃换行符,储存其余字符,并在这些字符的末尾添加一个空字符;需包含“#include”;可用在多维数组中。 (一般与puts()函数配对使用,puts():在字符串末尾添加换行符后显示字符串) #include using namespace std; int main() {

char m[20]; gets(m);

cout<

return 0; }

#include using namespace std; int main() {

char m[4][15]; for(int i=0;i<4;i++) {

gets(m[i]); }

for(int i=0;i<4;i++) {

cout<

return 0; }

输入:C++ program 输出:C++ program

六、C中介绍的fgets()

1.函数原形:fgets(字符数组首地址(或指针),限定读入的字符个数,文件名(或stdin(标准输入))

需包含头文件

2.说明:fgets()函数读取整行输入,把换行符放在字符末尾(假设输入行不溢出),通常与fputs()配对使用。(fputs(字符数组名,文件名(或stdout(标准输出)):不在字符串末尾添加换行符)

#include int main(void) {

char words[20]; fgets(words20stdin); fputs(wordsstdout); return 0; }

输入:apple pie 输出:apple pie

七、Attentions

1、cin.getline()属于iostream流,而getline()属于string流,是不一样的两个函数

2、在cin.get()cin.getline()getline()使用之前出现“使用cin>>输入数据”,为避免读入之前输入数据结束的回车键,应在前后者间加入cin.ignore()或cin.get()用于吸收上一次输入的回车符(将回车符作为输入流cin以清除缓存),如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。 3、cin.getline(arrsize)与cin.get(arrsize)的区别

cin.get(arrsize(ch))当遇到Enter时会结束目前输入,他不会删除缓冲区中的[enter] cin.getline(arrsize(ch))当遇到Enter时会结束当前输入,但是会删除缓冲区中的[enter]

6ecxw0llh379c964hjsm5kaxd91bpl00krg
领取福利

微信扫码领取福利

微信扫码分享