C++输入流

1.
   cin的成员函数get()getline()

char buf[30];
cin.get(buf,30,’\n’);
这个调用将输入数据放在字符数组buf中,30使数组的大小,"\n"使终止符。由于"\n"是默认值,因此一般情况下,
调用cin.get(buf,30)效果相同

例子:
void main()
{
  char buf[30];
  cin.get(buf,30);   
  cout<<buf<<endl;
  cin.get(buf,30);
  cout<<buf<<endl;  //这一句是不再显示的
}

//输入:di yi ci
//输出:di yi ci
这里程序没给出第二次输入的机会,这是因为get()遇到输入流的终止符时就会停止,他并不会从输入流中提取终止符
如果这时再调用一次get(),那么它第一眼看到的又是终止符"\n",于是什么都没有接收到就退出了,可以使用getline()解决

例子二:
字符串输入中的回车问题
void main()
{
  char buf[30];
  cin.getline(buf,30);
  cout<<buf<<endl;
  cin.getline(buf,30);
  cout<<buf<<endl;
}
//这时就可以两次都输入输出了

2.不同进制下的输入

例子:
输入流的格式控制

   void main()
   {
     int i;
	 cin>>hex>>i;                              //以十六进制为基数输入
	 cout<<"换算为十进制为:"<<i<<endl;
	 
	 cin>>oct;                              //设置当前输入进制为八进制
	 cout<<"输入一个八进制数字:";
	 cin>>i;
	 cout<<"换算成十进制为:"<<i<<endl;
	}
注意:一旦使用cin>>oct将当前输入设置为八进制,则后面的所有输入全部按照八进制进行读入数据,
直到使用cin>>dec将当前输入进制转换回十进制

3 文件 头文件 fstream.h

文件流如下:
ifstream ifile; //创建输入流对象ifile
ofstream ofile; //创建输出流对象 ofile
fstream iofile; //创建输入输出流对象iofile

创建文件流对象
<文件流><文件对象>(<文件名>,<存取模式>);
文集流可以是ofstream,ifstream或fstream
文件对象是创建的文件流对象名
ios::in //只读文件模式
ios::out //只写文件模式
ios::app //追加文件模式
这些标志可以使用"|"符号相连接,表示同时设置几种模式

例子:
从键盘上读入10个数字,将这些数字保存到sample.txt文件中,该文件放到路径 e:\temp下面

   #include"fstream.h"
   int main()
   {
      int buffer[10];
	  //定义ofile输出流对象,并打开路径e:\temp下面的sample.txt文件,设置打开方式为输出方式
	  ofstream ofile("e:\\temp\\sample.txt",ios::out);
      if(!ofile)
      {   //如果文件不能正常打开,则显示出错提示
          cerr<<"不能打开"<<endl;
          return 1;
       }
       cout<<"输入10个数"<<endl;
       for(int i=0; i<10; i++)
       {
		cin>>buffer[i];
		ofile<<buffer[i]<<""; //写入文件
	   }
	   ofile.close();    //关闭对文件sample.txt的操作
	   return 0;
	}
注意:
1.声明ofile的同时,如果指定的文件不存在,便会创建这个文件作为输出之用;如果这个文件已经存在,这个文件会被打开作为输出之用,
  并且清空这个文件的原有内容
2.如果文件已经存在,又不希望丢弃原有内容,而是希望添加新数据到文件中,那么必须使用追加模式打开文件
  ofstream ofile("e:\\temp\\sample.txt",ios::app);
3.如果需要对文件进行读取操作,那么必须设置既读又写模式。
  ofstream ofile("e:\\temp\\sample.txt",ios::in|ios::out);
4.打开文件时,如果不指明存取模式,则默认为只读模式
  ofstream ofile("e:\\temp\\sample.txt");

4. 使用文件流成员函数open() <文件流对象>.open(<文件名>,<存取方式>);

例子一:
文本模式

  #include<iostream>
  #include<fstream>
  void main()
  {
    ofstram ofile("e:\\temp\\file.txt");
	if(!ofile) cerr<<"打开文件失败"<<endl;
	else
	{
	  ofile<<"姓名\t"<<"年龄\t"<<"性别\t"<<endl;
	  ofile<<"li\t"<<"2\t"<<"女"<<endl;
	  ofile<<"dsd\t"<<"54\t"<<"女"<<endl;
	  ofile<<"ds\t"<<"43\t"<<"男"<<endl;
	  ofile<<"fdf\t"<<"43\t"<<"男"<<endl;
	  ofile<<"fd\t"<<"4\t"<<"女"<<endl;
	}
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值