C++语言中,cin.get()与cin.peek()是什么功能啊??

作者&投稿:上询 (若有异议请与网页底部的电邮联系)
c++语言中“cin”和“cin.get()”的区别是什么?~

楼主你说的“cin程序就无法执行”,那是因为cin会自动帮你忽略空格,回车等不可见字符,你判断c等不等于回车,这是永远都不可能相等的,因为cin把回车吃掉了。
cin.get()函数的功能就是getchar()的功能,能一个一个获取字符,包括不可见字符,这两者只能用来获取字符。
scanf()也可以用来都如不可见字符,例如
char c;
while( scanf("%c",&c), c != '#' )
scanf还可以用来获取其他类型的数据的。
如果你想用scanf忽略不可见字符,就这样写 scanf(" %c",&c),在百分号前面加一个空格。
循环条件可以改成:
char c;
while( (c = cin.get()) != '#')
while( (c = getchar()) != '#')
whiel( scanf(" %c",&c), c != '#')
读取存储过程这个没有研究,之知道cin他读入的东西会放到一个缓冲区里面的,这也就是为什么cin比scanf要慢很多的原因。

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

num = cin.get(); 这是第二个输入。 因为是第一次使用get,所以输入流队列中有一个回车符。 Get()接受此回车,并且由于get()收到了回车或空格或制表符,因此其停止了键入。

因此,这次的输入是回车,可以使用num = cin.get(); 只需使用cin.get()即可消除第一次输入后剩下的回车符,然后num = cin.get()就可以正常了。

扩展资料:
当许多初学者第一次接触cin时,程序运行到cin指令时,该程序将自动中断,然后等待用户从键盘输入信息。只有在用户输入完成并按下Enter键之后,程序才会继续运行。

此过程很容易导致初学者误解cin是计算机键盘调用的用于输入的命令。也正是由于这种误解,才会引起一系列的误解。

Cin本质上与其他C ++变量相同,也是一个变量名,并在iostream文件中定义。因此,当要使用cin函数时,必须导入头文件。在C ++中,变量名通常代表一部分内存。

以同样的方式,变量cin实际上被映射到一个存储区域,可以认为cin实际上代表一个内存缓冲区,此缓冲区的功能是缓冲从键盘输入的信息。

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(字符数组名,接收字符数目)的不足.

cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)。
其功能是从输入流中读取一个字符 但该字符并未从输入流中删除
若把输入流比作一个 栈类 那么这里的peek函数就相当于栈的成员函数front 而如果cin.get()则相当于栈的成员函数pop。
下面这段代码能帮助您更清晰地理解peek函数
/ istream peek
#include <iostream>
using namespace std;
int main () {
char c;
int n;
char str[256];
cout << "Enter a number or a word: ";
c=cin.peek();
if ( (c >= '0') && (c <= '9') )
{
cin >> n;
cout << "You have entered number " << n << endl;
}
else
{
cin >> str;
cout << " You have entered word " << str << endl;
}
return 0;
}


c++cin是什么意思
cin,是一个C++标准的输入流对象,使用右移运算符">>"从设备键盘取得数据,送到输入流对象cin中,然后送到内存。C++编程语言I\/O流中的标准输入流,需要包含iostream头文件,即#include<iostream>,cin分为两个音节读为"cin",音标"\/si:ɪn\/"。cin代表标准输入设备,使用右移运算符">>"从设备...

while(cin)是什么意思(C++)
cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象。这里的标准输出指的是终端键盘,标准错误输出指的是终端的屏幕。cin读取数据也是...

C++ cin的用法
int num_input;cin >> num_input;while(cin.fail()){ cin.clear();cin.ignore();cout << "输入错误,请重新输入"<<endl;cin >> num_input;}

c\/c++ 语言中cin与scanf有什么不同
cin后直接写变量名,但scanf后要写%d%s%c等 cin可直接输入string类型变量,scanf不可以 如果要输入1:2这样的输入,之后如果要提取出比号前后的数,用cin要先读入字符串,之后进行处理,但如果用scanf可以直接写scanf("%d:%d",&x,&y)scanf速度比cin快,用时是cin的六分之一 ...

C语言中int与cin的区别是什么
这2个没有什么联系,int是数据类型,表示整型,而cin代表标准输入设备,使用提取运算符 ">>" 从设备键盘取得数据,送到输入流对象cin中,然后送到内存。使用cin可以获得多个从键盘的输入值,基础知识你要好好学哦

在c++语言编程中cin是什么意思?又有什么作用?
是输入流类的一个对象,用来接收文件或键盘输入的数据

编程,C++中 cin>>a>>b什么意思
cin是输入的意思, 用于接收键盘的输入操作;cout是输出的意思,用于打印字符的操作;c++中cin>>a.x>>a.y 他的意思是接收键盘的输入,只不过是要输入两次的意思罢了。它等价于 cin>>a.x;cin>>a.y;你可以这样输入: 520空格再输入250 还可以这样输入: 520回车再输入250 ...

c语言有cin这个东西吗
cin 是 c++ 里的标准输入,即从键盘输入,std::cin. c 语言没有 cin.c 语言 用 scanf() 函数,需根据变量类型,加上输入格式。 例如:int i,j; char info[20];scanf("%d %d %s",&i, &j, info);

c++中cin>>na是什么意思
!cin的意思是用户输入的是false(0值)或其它的非0值,当是0值的时候!cin为true,否则为false。int i;cin>>i;表示等待输入一个int值 是一个全局输入流对象,在iostream文件里面声明,在iostream.cpp里面定义。这个对象重载了移位符>>。

输入语句(如cin)在计算机内部是怎样运行的?
、 C++流的概念 在C++语言中,数据的输入和输出(简写为I\/O)包括对标准输入设备键盘和标准输 出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间(当然可 用该空间存储任何信息)进行输入输出这三个方面。对标准输入设备和标准输出设 备的输入输出简称为标准I\/O,对在外存磁盘上文件...

城北区13834722144: C++语言中,cin.get()与cin.peek()是什么功能啊?? -
但削扶正: 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(字符数组名,接收字符数目)用...

城北区13834722144: C++中cin.get和cin.getline的区别是? -
但削扶正: 分为三种情况来看:1)输入的字符串不超过限定大小 get(str,Size):读取所有字符,遇到'\n'时止,并且将'\n'留在输入缓冲区中,其将被下一个读取输入的操作捕获,影响该输入处理; getline(str,Size):读取所有字符,遇到'\n'时止,并且将'\n'直...

城北区13834722144: C++单单的cin.get() 表示什么意思 -
但削扶正: cin.get 函数主要有两种用法: 1. 不带参数的 cin.get(),可以从标准输入流读取一个字符,包括空格,换行 2. 带参数的 cin.get(char* str, int size),可以一次最大读取 size 个字符放入 str 数组中,遇到换行符则结束读取,读取的 str 中不包括换...

城北区13834722144: c++中的cin.get()的用法 -
但削扶正: 用法1: cin.get(字符变量名)可以用来接收字符#include using namespace std; main () { char ch; ch=cin.get(); //或者cin.get(ch); cout<< } 输入:jljkljkl 输出:j 用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 ...

城北区13834722144: C++中的cin.clear()和cin.get()的用法
但削扶正: 这个clear的作用是首先清除所有cin流输入中出现的错误标识,然后将cin流的错误标识设置为参数中指定的标识. 错误标识有:goodbit, failbit, eofbit, badbit 四种 函数默认参数为goodbit,即没有错误. 下面是一个使用例子: #include <iostream...

城北区13834722144: 关于C++中cin()和cin.get()的用法,问题如下 -
但削扶正: 用来接收你输入的字符串的下一个字符达到统计字符的数目的目的.cin.get(ch)这条语句每次只能接受一个字符.而你开始时候是输入一段字符串.而第一个cin.get(ch)只接受了你输入的字符串的第一个字符,后面的字符都还在缓冲区里面没有取出.而循环体里面的cin.get(ch)不会再要求你输入字符就是因为缓冲区里面还有字符没有取出,自然就取缓冲区的下一个字符,直到取完为止.

城北区13834722144: c++问题,cin.get()函数 -
但削扶正: 获取控制台输入的一个字符 #include using namespace std;main (){char ch;ch=cin.get(); //或者cin.get(ch);cout

城北区13834722144: C++中cin.get()的使用方法? -
但削扶正: cin.get(str,count,delim)从cin中抽取最多count-1个字符,放到str指定的位置上.如果输入的字符串长度大于count,不会报错的,书上说的不够严谨.cin.get()逐个读入字符,当碰到如下情况之一则停止读入:1、文件结束符;2、如果读入的字符与delim相同,此时该字符还将被放回输入缓冲区中;3、已经读入了count-1个字符.当读入结束时,cin.get()将自动填入字符'\0'.所以,如果规定长度为10个字符,那么最多可读入9个字符.

城北区13834722144: c++中 输入 cin.get和cin.getline的区别是什么 谢谢 -
但削扶正: cin.getlin(char array[100],100,'\0') 这样的写法很不好看啊 cout 是输出流,如果右边是字符串变量的话,(最后有个'\0')那么要就从第一个字符到'\0'的内容输出. 如果是整数的话,因为它不是以'\0'结尾,所有只输出首地址啊

城北区13834722144: C++里的cin.get()函数是什么意思? -
但削扶正: 获取控制台输入的一个字符#include <iostream> using namespace std; main () { char ch; ch=cin.get(); //或者cin.get(ch); cout<<ch<<endl; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网