用于字符输入的流成员函数

来源:互联网 发布:mac移动硬盘安装win10 编辑:程序博客网 时间:2024/06/06 09:21

  

   除了可以用cin输入标准类型的数据外还可以用istream类流对象的一些成员函数实现字符的输入。

1.用get函数读入一个字符

(1)不带参数的get函数

其调用函数为

            cin.get()

用来从指定的输入流中提取一个字符(包括空字符),函数的返回值就是读入的字符。若遇到输入流中的文件结束符,则函数值返回文件结束标志EOF(End Of File),一般以-1代表EOF,用-1而不用0或者正值,是考虑到不与字符的ASCII代码混淆,但不同的C++系统所用的EOF值有可能不同。

例:用get函数读入字符

#include<iostream>
using namespace std;


int main()
{
   int c;
   cout<<"enter a sentence:"<<endl;
   while((c=cin.get())!=EOF)
  cout.put(c);                                      //cout.put('a')是专用于输出单个字符的成员函数


return 0;
}


运行情况如下:

enter a sentence:

I study C++ very hard!               //输入一行字符

I study C++ very hard!               //输入该字符


----------------------------------------------------------------------------------------------------------------------------


(2)有一个参数的get函数

其调用形式为

              cin.get(ch)

其作用是从输入流中读取一个字符,赋给字符变量ch。如果读取成功则函数返回非0值(真),如失败(遇文件结束符)则函数返回0值(假)。

例:

#include<iostream>
using namespace std;


int main()
{
   char c;
   cout<<"enter a sentence:"<<endl;
   while(cin.get(c))
   {cout.put(c);}
   cout<<"endl"<<endl;


return 0;
}

----------------------------------------------------------------------------------------------------------------------------

(3)有3个参数的get函数

其调用形式为

           cin.get(字符数组,字符个数n,终止字符)

          cin.get(字符指针字符个数n,终止字符)

读取成功返回非0值(真),失败返回0值(假)

例:

#include<iostream>
using namespace std;


int main()
{
   char ch[20]l
   cout<<"enter a sentence:"<<endl;
   cin.get(ch,10,'/n');

   cout<<ch<<endl;


return 0;
}

运行情况如下:
enter a sentence:

I study C++ very hard!             //输入

I study C                                   //输出


----------------------------------------------------------------------------------------------------------------------------

(3)用成员函数getline函数读入一行字符

其调用形式为

     cin.getline(字符数组(或字符指针),字符个数n,终止标识符)

例:

#include<iostream>
using namespace std;


int main()
{
  char ch[20];
  cout<<"enter a sentence:"<<endl;
  cin>>ch;
  cout<<"The string read with cin is :"<<ch<<endl;
  cin.getline(ch,20,'/');                                     //读19个字符或遇'/'结束
  cout<<"The second part is:"<<ch<<endl;
  cin.getline(ch,20);                                         //读19个字符或遇'/n'结束,,,,,想想为什么是读19个字符呢?
  cout<<"The third part is:"<<ch<<endl;


  return 0;
}


运算结果如下:

enter a sentence:
I study C++ very hard!
The string read with cin is :I
The second part is: study C++ very har
The third part is:
Press any key to continue


----------------------------------------------------------------------------------------------------------------------------

istream类的其他成员函数

常用的有以下几种:

1.eof  函数

eof是end of file 的缩写,表示“文件结束”。从输入流读取数据,如果达到文件末尾(遇文件结束符),eof 函数值为非零值(真),否则为0(假)。

例:逐个读入一行字符,将其中的非空字符输出

#include<iostream>
using namespace std;


int main()
{
 char c;
 while(!cin.eof())
if((c=cin.get())!=' ')
cout.put(c);


  return 0;
}

运算结果:

I study C++ very hard!
IstudyC++veryhard!
^Z
Press any key to continue


----------------------------------------------------------------------------------------------------------------------------

另外,

还有peek 函数,cin.peek()

putback函数,cin.putback(ch)

ignore 函数,cin.ignore(n,终止字符)

相关用法,问问度娘或者google去。。。大笑











原创粉丝点击