今、ホームページの作成をしています。
その際入力の画面で送信ボタンを押すと、cgiを使って入力確認の画面を
表示するようにしたいのですが、入力画面のTHML言語でTEXTAREAを使うと
その後の入力確認画面で入力通の改行ができません。
入力確認画面のソースを表示すると、入力画面で指定した箇所で改行はされているようなのですが、各行の最後にHTMLLの改行タグ<BR>が表示されていません。
改行タグを各行ごとに入れられれば良いのですが、どうしてもやり方が
わからないので、良いやり方があれば教えていただけませんか。
cgi上ではC言語を使い、ホームページを表示しています。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (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の性質上、インデントは全角スペースでやっているので、コピー&ペーストはできませんので、注意してください。

間違いがありましたらご指摘ください。
ではでは☆
    • good
    • 0
この回答へのお礼

色々ありがとうございます。

新しい領域に検索結果を順次入れていくっていうイメージですよね。
どうしても、\nがあったら<BR>\nに変えるっていうことばかり考えて
新たな領域っていう事が思い浮かびませんでした。

ソースは会社にあるので今はできないんですが、月曜日早速やってみます。
その後又レスを入れますので、今日は本当にありがとうございました。

お礼日時:2001/10/28 03:57

送られてきたデータを1文字ずつ解析して、\nがきたところで新しい格納用データエリアに<BR>\nとして入れ込めば問題はないと思いますよ。



ちなみに、TEXTAREAでデータをとった場合、自動開業だろうが何だろうが、<BR>はついてきません。Perlの場合でもパターンマッチを使って<BR>\nに切り替えているだけなので・・・

ではでは☆
    • good
    • 0
この回答へのお礼

ありがとうございます。

でも、新しい格納用データエリアってどうすればいいんですか?

C言語なので一応"isspace"を使って\nの検索はしているんですがこれって
フラグしか返さないのでその先に進めないんです。
初めてなのでなんか言葉も足りなく分かりにくいと思いますが・・・

お礼日時:2001/10/28 02:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報