C++文字出力 – プログラミング – Home

通知
すべてクリア

[解決済] C++文字出力


reshia
 reshia
(@reshia)
ゲスト
結合: 20年前
投稿: 117
Topic starter  

素人臭い質問で申しわけない。

C++で、以下のようにファイルから取り込んだ内容(テキスト)を
出力させようようとしたのですが、
------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string filename(file.txt);
ifstream in_fs(filename.c_str(), ios::in | ios::binary);
if (ifs == NULL) {
return EXIT_FAILURE;
}
for (int i = 0; !ifs.eof(); i++) {
cout << static_cast<char>(ifs.get());
}
cout << endl;
return EXIT_SUCCESS;
}
------------------------------------------------------------
無理矢理に、キャストしているところが気持悪くて。
こんな方法でいいのか?
と思い書き込ませていただきました。

もちろんコンパイルも通って思い通りの動作しますが、
環境依存してしまうとか、キャストは危険だとか
ついつい考えてしまいます。

このままで良いなら、このままで良いと
意見・感想をください。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

char ch;
while ( ifs.get(ch) ) {
cout << ch;
}

これならキャスト不要。
もっと安直なのは:

cout << ifs.rdbuf();

ループすら不要。


返信引用
reshia
 reshia
(@reshia)
ゲスト
結合: 20年前
投稿: 117
Topic starter  

行番号も出したかったので、2つめの方法は使えませんが。
タブを2文字のスペースに変えたりもしたいので、
1つめの方法でやります。
ありがとうございました。

追伸
ホームページ時々、見させていただいています。
STLもバリバリ使えるように頑張ります。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

getlineで一行まるっと読んだ方が楽カモ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました