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]开始为你输入的第二行内容。