10 行を含むテキスト ファイルがあるとします。5 行目に移動し、その下のすべてをクリアして、その後に新しいテキストをいくつか追加します。ストリームの C++ を使用してこれを実現する最もコンパクトな方法は何ですか?
質問する
823 次
2 に答える
2
IOstream を使用してファイルを開き、最初の 5 行を配列に保存し、その配列と必要なその他の行を使用してテスト ファイルを再作成します。コード例を次に示します。
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
const int linesToRead = 5; //How many lines to read before stopping
string lines [linesToRead];
int line = 0;
ifstream myinputfile ("example.txt");
if (myinputfile.is_open())
{
while ( myinputfile.good() && line<=linesToRead )
{
if(line<linesToRead)
{ //Stop reading at line 5
getline (myinputfile,lines[line]);
cout << lines[line];
}
line++;
}
myinputfile.close();
}
else cout << "Unable to open file";
//Begin creating new file
const int numberOfNewLines = 7;
string newlines[numberOfNewLines] = {"These", "are", "some", "of", "the", "new", "lines"}; //lines to be added after the previous 5
ofstream myoutputfile ("example.txt");
if (myoutputfile.is_open())
{
for(int i = 0; i<linesToRead; i++){
myoutputfile << lines[i] << "\n";
}
for(int i = 0; i<numberOfNewLines; i++){
myoutputfile << newlines[i] << "\n";
}
myoutputfile.close();
}
else cout << "Unable to open file";
return 0;
}
于 2013-07-16T19:32:48.600 に答える