空の行を含む可能性のあるテキストファイルがあります。私はこのファイルを開き、空の行を探したい。空の行が存在する場合は、その行を削除します。 私はこの目的のために一時ファイルを作成したくありません。後で同じファイルを編集して閉じたいと思っています。空の行をC++のテキストファイルから削除します
私はすでに同様の問題についていくつかの記事を見てきましたが、どれも私のために働いていませんでした。
void DeleteEmptyLines(const string& FilePath)
{
//EXISTING File
std::fstream FileStream;
std::string CurrentReadLine;
if (doesFileExist(FilePath))
{
FileStream.open(FilePath, std::fstream::in | std::fstream::out | std::fstream::app);
//Read all the lines till the end of the file
while(getline(FileStream, CurrentReadLine))
{
//Check if the line is empty
if(CurrentReadLine.empty())
{
cout<<"Empty line found"<<endl;
//DELETE THIS EMPTY LINE
}
}
FileStream.clear();
FileStream.close();
}
// else --->> do nothing
}
現在のファイル(MyFile.txtを):
Line1
Line2
Line3
私は(MyFile.txtを)必要なもの:
Line1
Line2
Line3
PS:私はVS2010を使用していますWindowsマシン上。
私はあなたに答えがありません。上記のコードでは、1つ以上のスペースのある行だけが空ではないと考えてください。それは目的ですか?扱うファイルが決して大きすぎない場合は、メモリ内に新しいファイルを最初に作成し、空の行を残しておくことができます。例のようにhttp://www.cplusplus.com/reference/string/string/empty/ – diidu
いいえ、私の目的は、文字を持たない行をすべて削除することです。 – skm
これは動作しますか?最初にすべてを読む - >データを処理する - >新しいデータをファイルにダンプする(今度は "w"モードで開く) – Icarus3