
cgiでHTMLを作成していますが、cgiを実行した時に
HTMLで改行が2個入ってしまいます。
unix上のファイルをfgetsにて1行ずつ読み込んで
そのまま出力しています。
改行コードを削除したいのですが、
表示しているHTMLのsrc内にある改行コードに何(どの改行コード)が入っているのか分からず、削除できません。
(fgetsで読み込んだ1行の最後に"\0"が入っていると思って、それを削除してみたのですが、駄目でした。このやりかたは間違えていますか?正しい方法を教えてください。)
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
文面からすると、CGIの開発言語はC言語でしょうか?
その前提で話をすすめます。
出力はどうやってますか? もしかして、puts を使っていませんか?
・fgets は、改行文字までを1行として、改行文字込みで読み込みます。
・puts は、引数で指定した文字列を出力したあと、改行文字を出力します。
そのため、fgetsで読んでputsで出力すると改行文字がダブります。
もしそうであれば、puts ではなく fputs でstdoutに出力すればOKです。(fputs は引数文字列のみ出力し、改行文字の追加出力は行いません。)
なお、「'\0'を削除」というのは明らかに間違ってます。
(そもそも「削除」というのが具体的にどういう操作をしているのか、かなり意味不明ですが)
'\0'は、C言語において「文字列」の終わりを示します。
fgets は、1行読み込んだあと、読み込んだ文字列が全部で何文字あるのかを示すために、最後の文字(普通は改行文字)の次に'\0'を入れます。そして、puts やfputsなど、入力として指定した引数の示すデータのうち、'\0'の前までを「文字列」として認識します。
回答ありがとうございました。m(_ _)m
開発言語はc++で、fgetで読んで、coutで出力していました。多分、これで、fgetで読み込んでputsで出力したときと同じように、
改行文字がダブっていたのだと思います。
“od -c ファイル | less”
でファイル中の改行コードを見ることが出来ることが分かったのでそれで確認しました。
最初、ダブっている'\n'を削除して実行したところ、上手く動かないと思いこんで、いろいろ悩んだあげく、
'\0'の削除してみるという考えに至ったのですが、おっしゃられているとおり、全く“意味不明”の行為でした・・・。
だいたい、\n(改行)と\0(null)は全く別ものですものねf^_^;
また、実は上手くいかないと思っていたのは間違いで、修正している箇所を単純に間違えていただけでした。
(似たような処理をしている箇所が2カ所あって、結果が表示されるのとは別の方の修正をしていましたf^_^;)
質問を出した数分後、休憩を取っている時にその事に気付き、修正しなおしたら、即効解決でした。
しかし、意味不明な修正をしたということは、やっぱりしっかり理解していなかった証拠・・・。
mtaka2さんの回答、'fgets','fput','\n','\0'の再勉強になりました。ありがとうございました。m(_ _)mm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Line Inputにて改行があっても...
-
Rstudioによるテキストマイニン...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
バイナリとBCDコード
-
utf-8でメールを送信すると件名...
-
COBOLのCOMP形式について
-
「1TB」のHDDに日本語は何字入...
-
PNGを24bppBMPに変換したいので...
-
int型(2バイト)データの分割
-
全角半角を調べるライブラリ関...
-
半角、全角の判別方法
-
PHPのCookieが有るか無いかで、...
-
Excel 1セル当りの文字数が2...
-
COleDateTime とtime_t
-
C言語の勉強しています。すみま...
-
CSVファイルの行と列のセルって...
-
'dataType' 引数を Null にする...
-
任意のアルファベットの2進表...
-
VB.NET LeftBの代用
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA メール作成について ...
-
Rstudioによるテキストマイニン...
-
Line Inputにて改行があっても...
-
CGIを勉強しています。¥n(改...
-
chompの使い方
-
number 改行が追加できない
-
エクセルで「改行コード」を「...
-
ホームページビルダーで行間を...
-
改行コードがそのまま表示され...
-
連想するもの教えてください
-
Excelで、HTMLタグだけを削除す...
-
CGIフォーム無改行で途中から文...
-
表(<table>)の直前が、改行さ...
-
MACの改行コード変更について教...
-
PHP <br /> <br> 結局どっち?
-
イベントハンドラの用法を教え...
-
UTF-8で5~6バイトになる文字コ...
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
おすすめ情報