next up previous contents
Next: D.5 数学関数 Up: D. C++ を使ってみよう Previous: D.3 vector

D.4 ファイル入出力

C の FILE, fopen(), fclose(), fprintf() などを使った入力はどうするのか?

fileio.C

#include <iostream.h>
#include <fstream.h>

int main()
{
  char c;
  char fname[] = "fileio.C";

  ifstream input(fname);
  if (input.bad()) {
    cerr << fname << "をオープンできませんでした" << endl;
    abort();
  }
  while (input.get(c))
    cout << c;
  return 0;
}

fileio1.C

#include <iostream.h>
#include <fstream.h>

int main()
{
  char c;
  char fname[] = "fileio1.C";
  ifstream input(fname);
  if (input.bad()) {
    cerr << fname << "をオープンできませんでした" << endl;
    abort();
  }
  while (input.get(c)) {
    cout << c;
  }
  return 0;
}

fileio2.C

#include <iostream.h>
#include <fstream.h>

int main()
{
  char c;
  char fname1[] = "fileio2.C";
  char fname2[] = "fileio2.C.backup";
  ifstream input(fname1);
  if (input.bad()) {
    cerr << fname1 << "をオープンできませんでした" << endl;
    abort();
  }
  ofstream output(fname2);
  if (output.bad()) {
    cerr << fname2 << "をオープンできませんでした" << endl;
    abort();
  }
  while (input.get(c)) {
    cout << c;
    output << c;
  }
  return 0;
}

fileio3.C

#include <iostream.h>
#include <fstream.h>

int main()
{
  char c;
  char fname1[] = "fileio3.C";
  char fname2[] = "fileio3.C.backup";
  ifstream input(fname1);
  if (input.bad()) {
    cerr << fname1 << "をオープンできませんでした" << endl;
    abort();
  }
  ofstream output(fname2, ios::noreplace);
  if (output.bad()) {
    cerr << fname2 << "をオープンできませんでした。" << endl;
    cerr << "(既にファイルが存在するのかもしれません。" << endl;
    abort();
  }
  while (input.get(c)) {
    cout << c;
    output << c;
  }
  return 0;
}

fileio4.C

#include <iostream.h>
#include <fstream.h>

int main()
{
  char c;
  char fname1[] = "fileio4.C";
  char fname2[] = "fileio4.C.backup";
  ifstream input(fname1);
  if (input.bad()) {
    cerr << fname1 << "をオープンできませんでした" << endl;
    abort();
  }
  //  ofstream output(fname2, ios::ate);
  ofstream output(fname2, ios::ate | ios::out);
  if (output.bad()) {
    cerr << fname2 << "をオープンできませんでした。" << endl;
    abort();
  }
  while (input.get(c)) {
    cout << c;
    output << c;
  }
  return 0;
}


next up previous contents
Next: D.5 数学関数 Up: D. C++ を使ってみよう Previous: D.3 vector
Masashi Katsurada
平成18年4月28日