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;
}
}