您的位置:首页 > 其它

关于输入输出流的讨论

2008-01-19 11:45 239 查看
今天看了下C++中的流,试着编写了程序如下:

#include <fstream>
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
ifstream ii_st;
ofstream oo_st;
int fri_data,sec_data,thi_data,i1,i2,i3;
// char s_data,s3;
fri_data=111;
sec_data=222;
thi_data=333;
//s_data='a';
oo_st.open("test.data",ios::app); ios::app的作用是在已有的数据后追加数据,否则就会重头重写数据
if(oo_st.fail())
{
cout << "the output is fail";
exit(1);
}
oo_st << fri_data << "/n"<< sec_data << "/n" << thi_data <<"/n" ;
oo_st.close();
ii_st.open("test.data");
if (ii_st.fail())
{
cout << "the input is fail";
exit(1);
}
ii_st >> i1 >> i2 >> i3;
cout << i1 << i2 << i3;
ii_st.close();
}

开始时的程序中向文件中输出数据时用的语句为oo_st << fri_data << sec_data << thi_data ;既没有换行符,运行的结果如下111222-1073749412,并且最后五位每次运行后的结果都不一样,在向如上程序那样输入每行后加入换行符后,即可输出正确结果。

原因在于从文件中读入数据和从键盘中读入数据的原理是一样的,即要让计算机知道每个数据在什么时候结束。程序在从键盘中读数据的时候几个不同的数据之间要用分隔符分离,如空格,Tab和换行符等,因此在从文件中读入数据的时候,文件中的数据也要有明确的分隔符分离。如果输入和输出是同一个文件就要求输入文件数据数据的时候数据之间要有分隔符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: