c++基于流文件输入输出的综合程序设计
  1. 运行下列程序,分析结果。

#include <iostream>

#include<fstream>

using namespace std;

int main()

{

    fstream out,in;

    out.open("a.dat",ios::out);

    out<<"As a matter of fact,\n";

    out<<"operating file \n";

    out<<"is the same as inputing/outputing data on screen...\n";

    out.close();

    char buffer[80];

    in.open("a.dat",ios::in);

    while(!in.eof())

    {

        in.getline(buffer,80);

        cout<<buffer<<endl;

    }

    return 0;

}

当前目录下创建文件a.dat,内容为
As a matter of fact
operating file
is the same as inputing/outputing data on screen...
输入当前目录文件a.dat

2、编写一个程序,读入一个C++语言的源文件,每一行加上行号后保存到另一个后缀为.txt的同名文件中,同时输出到屏幕上。

#include <iostream>
#include <fstream>
using namespace std;int main()
{ifstream fin("实验5.cpp");ofstream fout;char filename[20] = "实验5.txt";fout.open(filename, ios::app | ios::out);if (fin.fail() || fout.fail()){cout << "文件打开失败!";return 0;}//读写文件char ch[100];while (fin){fin.getline(ch, 99);cout << ch << '\n';fout << ch << '\n';}fin.close();fout.close();return 0;
}

3、编写程序,生成一个二进制数据文件,将n~m之间的所有素数写入文件data.dat中。从数据文件中读取二进制数据,并在显示器上以每行10个数的形式显示。

#include <fstream>
#include <iostream>
#include <bitset>
using namespace std;bool isPrime(int num) {if (num < 2) {return false;}for (int i = 2; i <= sqrt(num); ++i) {if (num % i == 0) {return false;}}return true;
}int main()
{int n, m;cout << "请输入开始结束的区间!";cin >> n >> m;ofstream fout;char filename[10] = "data.dat";fout.open(filename, ios_base::out | ios_base::binary);if (fout.fail()){cout << "打开文件失败!" << endl;return 0;}for (int i = n; i <= m; ++i){if (isPrime(i)) {fout.write(reinterpret_cast<const char*>(&i), sizeof(int));}}fout.close();ifstream fin;fin.open(filename, ios_base::in | ios_base::binary);if (fin.fail()){cout << "打开文件失败!" << endl;return 0;}int num, count = 0;while (fin.read(reinterpret_cast<char*>(&num), sizeof(int))) {std::cout << num << "\t";++count;if (count % 10 == 0) {cout << endl;}}cout << endl;fin.close();return 0;
}