- ベストアンサー
HTMLのTEXTAREAで改行ができない問題について
- HTMLのTEXTAREAを使用してCGIを表示する際、改行ができない問題が発生しています。
- 入力確認画面で指定した箇所で改行はされているようですが、各行の最後にHTMLの改行タグが表示されていません。
- 改行タグを各行ごとに入れる方法が分からないため、解決策を教えていただきたいです。
- みんなの回答 (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の性質上、インデントは全角スペースでやっているので、コピー&ペーストはできませんので、注意してください。 間違いがありましたらご指摘ください。 ではでは☆
その他の回答 (1)
送られてきたデータを1文字ずつ解析して、\nがきたところで新しい格納用データエリアに<BR>\nとして入れ込めば問題はないと思いますよ。 ちなみに、TEXTAREAでデータをとった場合、自動開業だろうが何だろうが、<BR>はついてきません。Perlの場合でもパターンマッチを使って<BR>\nに切り替えているだけなので・・・ ではでは☆
お礼
ありがとうございます。 でも、新しい格納用データエリアってどうすればいいんですか? C言語なので一応"isspace"を使って\nの検索はしているんですがこれって フラグしか返さないのでその先に進めないんです。 初めてなのでなんか言葉も足りなく分かりにくいと思いますが・・・
お礼
色々ありがとうございます。 新しい領域に検索結果を順次入れていくっていうイメージですよね。 どうしても、\nがあったら<BR>\nに変えるっていうことばかり考えて 新たな領域っていう事が思い浮かびませんでした。 ソースは会社にあるので今はできないんですが、月曜日早速やってみます。 その後又レスを入れますので、今日は本当にありがとうございました。