首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cin.get()1点疑问

2013-07-04 
cin.get()一点疑问#include iostreamusing namespace stdint main( ) {char c[10]c[0] cin.get( )c

cin.get()一点疑问


#include <iostream>
using namespace std;

int main( ) 
{
   char c[10];

   c[0] = cin.get( );
   cin.get( c[1] ); //
   cin.get( &c[2],3 );// 
   cin.get( &c[4], 4, '7' );//

   cout << c << endl;
}

输入,11,回车就会得出11, 后面3个画上 // 的cin.get 有什么用?详细解释一下下面三个get
   cin.get( c[1] ); //
   cin.get( &c[2],3 );// 
   cin.get( &c[4], 4, '7' );//

这是微软官方msdn的例子。
http://msdn.microsoft.com/en-us/library/yk96k3xe.aspx
[解决办法]
cin.get(字符变量名)可以用来接收字符
cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.
[解决办法]
你输入“123”“1234”试试。

#include <iostream>
using namespace std;
 
int main( ) 
{
   char c[10];
 
   c[0] = cin.get( );//读取一个字符
   cin.get( c[1] ); //读取一个字符
   cin.get( &c[2],3 );//读取字符串直到遇到'\n'并添加'\0',最多读3个字符
   cin.get( &c[4], 4, '7' );//读取字符串直到遇到'7'并添加'\0'2,最多读4个字符
 
   cout << c << endl;
}

当输入11时:
行8输入1到c[0];
行9输入1到c[1];
行10输入0个字符,cin的failbit被置位,后续输入全部失败。

当输入123时:
行8输入1到c[0];
行9输入2到c[1];
行10输入1个字符'3'到c[2],并将c[3]设为'\0'
行11继续要求输入,内容输入到c[4],但由于c[3]为'\0',输出时被截断。

当输入1234时:
行8输入1到c[0];
行9输入2到c[1];
行10输入2个字符"34"到c[2]c[3],并将c[4]设为'\0'
行11继续要求输入,内容输入到c[4],其中c[4]为'\n',c[5]开始为你输入的第二行内容。

热点排行