C++でファイル内容を変更する方法
ファイルの内容を C++ で変更するには、fstream オブジェクトを使用し、適切な読み取り/書き込み操作を使用する必要があります。
以下のサンプルコードはファイルをオープンして内容を書き込みます。既存の内容は上書きされます。
#include <iostream>
#include <fstream>
int main() {
std::ofstream file("example.txt"); // 打开文件,如果不存在则创建
if (file.is_open()) {
file << "Hello, World!"; // 写入内容到文件中
file.close(); // 关闭文件
std::cout << "文件内容已修改。" << std::endl;
} else {
std::cout << "无法打开文件。" << std::endl;
}
return 0;
}
ファイルの特定箇所の内容を変更したい場合は、ファイルストリームの読み書き操作(seekgとseekp)を使用して目的の位置に移動し、適宜変更する必要があります。
既存のファイルをオープンし、その内容を変更するコードサンプルを以下に示します。
#include <iostream>
#include <fstream>
int main() {
std::fstream file("example.txt", std::ios::in | std::ios::out); // 打开文件
if (file.is_open()) {
file.seekp(7); // 定位到第8个字符的位置(索引从0开始)
file << "C++"; // 替换内容
file.close(); // 关闭文件
std::cout << "文件内容已修改。" << std::endl;
} else {
std::cout << "无法打开文件。" << std::endl;
}
return 0;
}
seekp(7)は、ファイル中の8番目の文字位置にファイルポインタを移動し、<<演算子を使用してコンテンツを置き換えます。これにより、その位置より先のコンテンツが上書きされます。特定の位置にコンテンツを挿入する場合は、seekpとwrite関数を使用できます。