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