C++中cin.get()的具体用法

cin.get()的具体用法有哪几种?请举个例子看看.希望自己真正知道这个用法的才回答这个问题,因为我已经在百度知道里看过其他的相关问题了,请不要到百度知道里复一些东西到这里来.

另外,在百度知道里有个问题我弄不清楚,希望能解释下.谢谢.

问题:下列程序中,为什么第二次cin。get()不能用??

#include<iostream.h>
void main()
{
char ch;
ch=cin.get();//读入一个大写字符
ch=ch+32;//通过ascii码把大写的字母转化为小写的 /*-------小写的ascii码比大写的大32;
cout<<ch<<endl;
char num;
num=cin.get();//读入字符类型的
int a;
a=num-48;
cout<<a<<endl;

}

最佳答案:回答者:mhaha

你运行时想输入A,会按A 回车,cin.get()会把回车('\n')当作字符(num)读了,然后``````
char ch;
cin>>ch;
char num;
cin>>num;
这样(>>)会跳过回车符或者空格

用法有以下几种:

1、cin.get()

用法1: cin.get(字符变量名)可以用来接收字符

#include <iostream> 
using namespace std; 
main () 

char ch; 
ch=cin.get();               //或者cin.get(ch); 
cout<<ch<<endl; 
}

输入:jljkljkl 
输出:j

用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

#include <iostream> 
using namespace std; 
main () 

char a[20]; 
cin.get(a,20); 
cout<<a<<endl; 
}

输入:jkl jkl jkl 
输出:jkl jkl jkl

输入:abcdeabcdeabcdeabcdeabcde (输入25个字符) 
输出:abcdeabcdeabcdeabcd              (接收19个字符+1个'\0')

用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足。

扩展资料:

get()函数比较灵活,有3种常用的重载形式:

1、和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。

2、重载形式的原型是: int get();这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如x=file2.get();和上例功能是一样的。

3、原型是:ifstream &get(char *buf,int num,char delim='\n');这种形式把字符读入由 buf 指向的数组,直到读入了 num 个字符或遇到了由 delim 指定的字符,如果没使用 delim 这个参数,将使用缺省值换行符'\n'。例如:

file2.get(str1,127,'A'); //从文件中读取字符到字符串str1,当遇到字符'A'或读取了127个字符时终止。

4、从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。

5、在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。

参考资料来源:IT专家网-C++

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-08-06

cin.get()是保留回车在输入流队列中的,

而cin是丢弃回车的。

ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中。这时你输入一个字符,然后回车。get()收到回车或空格或制表符就停止输入了、此时,输入流队列中留下一个回车。

num=cin.get();这是第二次输入。因为第一次用了get,所以输入流队列中有个回车。则get()接受这个回车。又因为get()收到回车或空格或制表符就停止输入。

所以这一次的输入就是一个回车,
可以num=cin.get();之前把回车给弄了。你应该想到了。就用cin.get(),把第一次输入留下的回车给弄走.则num=cin.get()就可以正常了。

扩展资料

cin运行机制解析:

C++的cin究竟确切含义是什么呢?很多初学者第一次接触cin时,当程序运行到cin指令时,程序自动会中断,然后等待用户从键盘中输入信息。只有当用户输入完成,按下回车之后,程序才会继续往下运行。

这个过程很容易让初学者产生误会,认为cin就是调用电脑键盘进行输入的指令。也是因为这个错误的认知,会引起一系列的误会。例如上文中图4,虽然程序中有三次cin,但其实我们只要从键盘里输入一次,就可以完成全部输入工作,不一定非得分开三次从键盘输入。

cin本质和其它C++变量一样,它也是一个变量名,它被定义在iostream文件里。因此,我们要使用cin功能时,就必须导入头文件<iostream>。在C++中,变量名通常实质是代表着一段内存区域,

同样的道理,cin这个变量其实也是映射到一段内存区域里面,我们可以认为cin实际上代表着一段内存缓冲区,这段缓冲区的作用是,用于缓存从键盘输入的信息。

本回答被网友采纳
第2个回答  推荐于2019-10-11

该函数有多种重载形式,分为四种格式:无参,一参数,二参数,三个参数。常用的的函数原型如下:

1,int cin.get();

2,istream& cin.get(char& var);

3,istream& get ( char* s, streamsize n );

4,istream& get ( char* s,  streamsize  n, char delim )。

其中streamsize 在VC++中被定义为long long型。另外,还有两个重载形式不怎么使用,就不详述了,函数原型如下:

1,istream& get ( streambuf& sb);

2,istream& get ( streambuf& sb, char delim );

cin.get读取一个字符,可以使用cin.get或者cin.get(var),示例代码如下:

#include <iostream>

using namespace std;

int main()

{

char a;

char b;

a=cin.get();

cin.get(b);

cout<<a<<b<<endl;

system("pause");

return 0;

}

扩展资料

cin.getline()与他相比,比较粗一些。举例:先定义字符数组 char a[20];cin.getline(a,20);即把数组的内容读入进来。它通过换行符来确定行尾,但不保存换行符。

cin.get()则将换行符留在输入队列中。举例:假设我们两次调用cin.get():cin.get(a,20);cin.get(b,20);

如果不借助帮助,cin.get(b,20)无法读入,因为换行符留在了输入队列,第二次调用时读的第一个字符便是换行符,所以无法读入新的内容。同样的规则,借助不带参数的cin.get();在上例中的两句之间加入cin.get();用它吃掉换行符。

参考资料:百度百科 - C++

本回答被网友采纳
第3个回答  推荐于2019-11-02

cin.get()是保留回车在输入流队列中的,

而cin是丢弃回车的。

ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中。这时你输入一个字符,然后回车。get()收到回车或空格或制表符就停止输入了、此时,输入流队列中留下一个回车。

num=cin.get();这是第二次输入。因为第一次用了get,所以输入流队列中有个回车。则get()接受这个回车。又因为get()收到回车或空格或制表符就停止输入。

所以这一次的输入就是一个回车,可以num=cin.get();之前把回车给弄了。你应该想到了。就用cin.get(),把第一次输入留下的回车给弄走.则num=cin.get()就可以正常了。

扩展资料

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

#include <iostream> 

using namespace std; 

main () 

char a[20]; 

cin.get(a,20); 

cout<<a<<endl; 

}

输入:jkl jkl jkl 

输出:jkl jkl jkl

输入:abcdeabcdeabcdeabcdeabcde (输入25个字符) 

输出:abcdeabcdeabcdeabcd   (接收19个字符+1个'\0')

参考资料:百度百科 - cin

百度百科 - C++



本回答被网友采纳
第4个回答  推荐于2017-09-27
cin.get()是保留回车在输入流队列中的.而cin是丢弃回车的.
ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中.这时你输入一个字符,然后回车.get()收到回车或空格或制表符就停止输入了.此时,输入流队列中留下一个回车.
num=cin.get();这是第二次输入.因为第一次用了get,所以输入流队列中有个回车.则get()接受这个回车.又因为get()收到回车或空格或制表符就停止输入.所以这一次的输入就是一个回车.
可以num=cin.get();之前把回车给弄了.你应该想到了.就用cin.get();把第一次输入留下的回车给弄走.则num=cin.get()就可以正常了.

<C++ primer plus>说得很详细你去看看就会明白了.本回答被提问者采纳

C++中cin.get()的具体用法
1、cin.get()用法1: cin.get(字符变量名)可以用来接收字符 include <iostream> using namespace std; main () { char ch; ch=cin.get(); \/\/或者cin.get(ch); cout<<ch<<endl; } 输入:jljkljkl 输出:j 用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 i...

c++中cin.get()的具体用法
一、基本用法 `cin.get`是C++中的输入函数,用于从标准输入流获取字符。二、详细解释 1. 获取单个字符:当`cin.get`不带参数时,它会读取并返回下一个字符。例如:cpp char ch;cin.get; \/\/ 从标准输入读取一个字符并存储在变量ch中。2. 获取字符串:当使用带有一个参数的`cin.get`时,可以...

C++中cin.get()的具体用法
cin.get()是保留回车在输入流队列中的,而cin是丢弃回车的。ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中。这时你输入一个字符,然后回车。get()收到回车或空格或制表符就停止输入了、此时,输入流队列中留下一个回车。num=cin.get();这是第二次输入。因为第...

C++中cin.get()的使用方法?
cin.get(str,count,delim)从cin中抽取最多count-1个字符,放到str指定的位置上。如果输入的字符串长度大于count,不会报错的,书上说的不够严谨。cin.get()逐个读入字符,当碰到如下情况之一则停止读入:1、文件结束符;2、如果读入的字符与delim相同,此时该字符还将被放回输入缓冲区中;3、已经读入...

C++,cin.get()用法
cin.get(ch);ch=cin.get();如果程序正在使用get函数简单地暂停屏幕直到按回车键,并且不需要存储字符,则该函数也可以这样调用:cin.get();在所有这3个编程语句中,get函数调用的格式实际上是一样的。首先是对象的名称,在此示例中它是cin。然后是一个句点,其后是被调用的成员函数的名称,在这里...

c++里面的cin.get()到底是什么作用啊
c++里面的cin.get()的作用是保留回车在 输入流 队列中。ch = cin.get();是第一个输入,因为只是开始,所以输入流队列中没有回车符。然后输入一个字符,然后按Enter键。当收到回车符,空格或制表符时,get()停止键入。此时,回车将留在输入流队列中。num = cin.get();这是第二个输入。因...

c++中cin,cin.get(
在C++中,cin>>通常只能读取一个单独的单词,这对于处理包含空格的字符串时会遇到问题。为了解决这个问题,cin.get()函数显得更为实用。它允许读取指定长度的字符串,包括空格和特殊字符。以下是两种使用cin.get()的示例:首先,直接使用cin.get(name,size)会读取到行尾,但会保留换行符,导致第二次...

C++中关于cin.get()的问题
cin.get()是用来读取多余回车符号的。保留cin.get()的时候,程序执行流程如下:你输入的google+回车,被getline(cin, titles[i])读掉,然后你输入的10被cin >> ratings[i]读掉,10后面的回车被cin.get()读掉。然后正常进入下一次循环。去掉cin.get()之后,流程如下:google+回车,被getline读取。

C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用 ...
但通常使用在`string`类型中,其语法与`cin.getline()`相似。两者的主要区别在于`getline()`属于`string`流,而`cin.getline()`属于`istream`流,它们是不同的函数。总之,在处理输入数据时,C++提供了多种方法,选择合适的函数取决于具体需求。确保理解每个函数的功能和用法对于高效编程至关重要。

C++中怎么样在循环中使用cin.get()
一个例子 include <iostream> using namespace std;int main(){ while(1){ char b=cin.get();if(b=='o')break;} return 0;} 只有当你从键盘上输o时程序才能结束

相似回答