はじめに
この実験では、C++ 言語を使ったファイル操作を用いて、1 つのファイルの内容を別のファイルにコピーする方法を学びます。
この実験では、C++ 言語を使ったファイル操作を用いて、1 つのファイルの内容を別のファイルにコピーする方法を学びます。
最初のステップでは、コードを進めるために必要なヘッダーファイルと名前空間をインクルードします。
#include <iostream>
#include <fstream>
using namespace std;
このステップでは、以下の操作を行います。
ifstream と ofstream クラスのオブジェクトを作成します。getline() メソッドを使って読み取り、<< 演算子を使って同じ内容を宛先に書き込みます(つまり、ifstream オブジェクトの各行を ofstream オブジェクトにコピーします)。close() メソッドを使ってファイルを閉じます。void copyFile(string sourceFile, string destinationFile){
string line;
// creating ifstream and ofstream objects
ifstream sourceFileStream(sourceFile);
ofstream destinationFileStream(destinationFile);
// Reading from source file and writing to destination file
if(sourceFileStream.is_open() && destinationFileStream.is_open()){
while(getline(sourceFileStream, line)){
destinationFileStream << line << "\n";
}
cout<<"Copy Finished"<<endl;
}
else{
printf("Cannot read File");
}
//closing file
sourceFileStream.close();
destinationFileStream.close();
}
このステップでは、copyFile() 関数を呼び出してファイルコピー操作を行うためのメイン関数を作成します。
int main(){
string sourceFile = "original.txt";
string destinationFile = "copy.txt";
copyFile(sourceFile, destinationFile);
return 0;
}
このステップでは、コードファイルが ~/project/main.cpp に保存されているため、カレントディレクトリを ~/project に変更して、ターミナルで以下のコマンドを実行できます。
g++ main.cpp -o main
./main
これにより、プログラムがコンパイルされて実行され、以下の出力が生成されます。
Copy Finished
#include <iostream>
#include <fstream>
using namespace std;
void copyFile(string sourceFile, string destinationFile){
string line;
// ifstream と ofstream オブジェクトを作成
ifstream sourceFileStream(sourceFile);
ofstream destinationFileStream(destinationFile);
// ソースファイルから読み取り、宛先ファイルに書き込む
if(sourceFileStream.is_open() && destinationFileStream.is_open()){
while(getline(sourceFileStream, line)){
destinationFileStream << line << "\n";
}
cout<<"コピー完了"<<endl;
}
else{
printf("ファイルを読み取れません");
}
// ファイルを閉じる
sourceFileStream.close();
destinationFileStream.close();
}
int main(){
string sourceFile = "original.txt";
string destinationFile = "copy.txt";
copyFile(sourceFile, destinationFile);
return 0;
}
この実験では、C++ 言語のファイル操作メソッドを使って、ユーザーが 1 つのファイルの内容を別のファイルにコピーできるアプリケーションを作成しました。