• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTMLにcgiを使って表示していますが、TEXTAREAの改行ができません)

HTMLのTEXTAREAで改行ができない問題について

このQ&Aのポイント
  • HTMLのTEXTAREAを使用してCGIを表示する際、改行ができない問題が発生しています。
  • 入力確認画面で指定した箇所で改行はされているようですが、各行の最後にHTMLの改行タグが表示されていません。
  • 改行タグを各行ごとに入れる方法が分からないため、解決策を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#9414
noname#9414
回答No.2

補足読みました。 こんな感じですかね? szInputが送られてきた文字列、szOutputが出力するためのデータです。 j= 0; memset(szOutput, 0, strlen(szOutput)); for(i = 0; szInput[i] != NULL; i++) {  if(szInput[i] == '\n') {   szOutput[j++] = '<';   szOutput[j++] = 'B';   szOutput[j++] = 'R';   szOutput[j++] = '>';   szOutput[j++] = '\n';  } else {   szOutput[j++] = szInput[i];  } } szOutput[j] = '\0'; まぁ、これだと\rの問題が出てくるので、そこら辺はご自分で考えてください。おそらくANSIでも問題なく通るはずです。 また、無制限の文字列にはこれではうまく対応できないと思うので、その場合はmallocか何かであらかじめ動的なメモリ領域を確保/初期化する必要がありますね。 また、HTMLの性質上、インデントは全角スペースでやっているので、コピー&ペーストはできませんので、注意してください。 間違いがありましたらご指摘ください。 ではでは☆

youjia
質問者

お礼

色々ありがとうございます。 新しい領域に検索結果を順次入れていくっていうイメージですよね。 どうしても、\nがあったら<BR>\nに変えるっていうことばかり考えて 新たな領域っていう事が思い浮かびませんでした。 ソースは会社にあるので今はできないんですが、月曜日早速やってみます。 その後又レスを入れますので、今日は本当にありがとうございました。

その他の回答 (1)

noname#9414
noname#9414
回答No.1

送られてきたデータを1文字ずつ解析して、\nがきたところで新しい格納用データエリアに<BR>\nとして入れ込めば問題はないと思いますよ。 ちなみに、TEXTAREAでデータをとった場合、自動開業だろうが何だろうが、<BR>はついてきません。Perlの場合でもパターンマッチを使って<BR>\nに切り替えているだけなので・・・ ではでは☆

youjia
質問者

お礼

ありがとうございます。 でも、新しい格納用データエリアってどうすればいいんですか? C言語なので一応"isspace"を使って\nの検索はしているんですがこれって フラグしか返さないのでその先に進めないんです。 初めてなのでなんか言葉も足りなく分かりにくいと思いますが・・・

関連するQ&A

専門家に質問してみよう