タグ付けされた質問 「ifstream」

5
ifstreamを手動で閉じる必要がありますか?
close()を使用する場合、手動で呼び出す必要がありstd::ifstreamますか? たとえば、コードでは: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); file.close(); return buffer.str(); } throw std::runtime_exception("file not found"); } file.close()手動で呼び出す必要がありますか?ファイルを閉じるifstreamためにRAIIを使用すべきではありませんか?
201 c++  ifstream  raii 

6
std :: ifstreamを取得してLF、CR、およびCRLFを処理しますか?
特に興味がありistream& getline ( istream& is, string& str );ます。ifstreamコンストラクターに、すべての改行エンコーディングを内部で「\ n」に変換するように指示するオプションはありますか?呼び出してgetline、すべての行末を適切に処理できるようにしたいと思います。 更新:明確にするために、私はほとんどどこでもコンパイルでき、ほとんどどこからでも入力を受け取るコードを書きたいと思っています。'\ n'のない '\ r'を持つまれなファイルを含みます。ソフトウェアのユーザーの不便を最小限に抑えます。 この問題を回避するのは簡単ですが、すべてのテキストファイル形式を柔軟に処理するための、標準での正しい方法についてはまだ興味があります。 getline'\ n'までの全行を文字列に読み込みます。'\ n'はストリームから消費されますが、getlineはそれを文字列に含めません。これまでのところ問題ありませんが、文字列に含まれる「\ n」の直前に「\ r」がある可能性があります。 テキストファイルに見られる行末には3つのタイプがあります。「\ n」はUnixマシンでの従来の語尾であり、「\ r」は(私が思うに)古いMacオペレーティングシステムで使用され、Windowsはペア「\ r」を使用します。 '\ n'が続きます。 問題はgetline、文字列の最後に「\ r」が残ることです。 ifstream f("a_text_file_of_unknown_origin"); string line; getline(f, line); if(!f.fail()) { // a non-empty line was read // BUT, there might be an '\r' at the …
85 c++  ifstream  newline 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.