改行コード(\n)の出力を、「0D0A」でなく「0A」にするには? – プログラミング – Home

改行コード(\n)の出力を、「0D0A...
 
通知
すべてクリア

[解決済] 改行コード(\n)の出力を、「0D0A」でなく「0A」にするには?


hide
 hide
(@hide)
ゲスト
結合: 25年前
投稿: 11
Topic starter  

特にVCに関する問題ってわけではなくて申し訳ないんですが、
cout や putchar で'\n'を出力すると、結果として
'\r\n'(0D0A)が出力されてしまいます(よね?)。
バイナリデータをブラウザでダウンロードさせるCGIを
書いているのですが、この改行コードの変換がネックで
妥当なデータをダウンロードさせることができません。

どうすればいいのでしょうか?
以下、コードです。
---
cout << Content-Type: abc/xyz << endl;
cout << Content-Disposition: attachment; filename=\abc.xyz\" << endl;
cout << Content-Length: << len << endl;
cout << endl;

while (len > count)
cout(data[count++]);
---


引用未解決
トピックタグ
hide
 hide
(@hide)
ゲスト
結合: 25年前
投稿: 11
Topic starter  

自己レスです。

_setmode(_fileno(stdout), _O_BINARY);

で、バイナリデータとして出力することで解決しました。
Windowsだとこんな事が必要なんですね。勉強になりました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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