質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

解決済

4回答

1176閲覧

C言語にてHTML文を見やすく管理したい。

1079

総合スコア14

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

0グッド

0クリップ

投稿2021/07/09 00:18

現在、あるマイコンをWebサーバーとしてHTTP通信のレスポンス用HTMLを作成しているのですが、
以下の書き方で1行となっており、非常に見にくく管理がしにくい状態です。

const char *FORM = "<!DOCTYPE html><html lang="ja"><head><meta charset="Shift_JIS"><title>ユニット設定</title></head><body><h1>WiFi設定</h1><form method="post"><p>SSID:<br><input type="text" name="SSID"></p><p>パスワード:<br><input type="text" name="Pass"></p><p><input type="submit" value="保存"></p></form></body>";

通常のHTML文のように各所に改行をした持ち方はできないのでしょうか?
また見やすく管理のしやすい方法があれば教えて頂きたいです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

文字列リテラルを並べると連結できるので、以下のように書くことができます。

c

1const char *FORM = "<!DOCTYPE html>" 2 "<html lang=\"ja\">" 3 "<head>" 4 "<meta charset=\"Shift_JIS\">" 5 "<title>ユニット設定</title>" 6 ....;

C++ だと生文字列リテラルが便利です。以下の例では見た目の各行に改行コードが入ります。

cpp

1const char* FORM = R"(<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="Shift_JIS"> 5<title>ユニット設定</title> 6....)";

ソースコードに直接埋め込むよりは、別ファイルとして管理してコンパイル時に実行ファイルに埋め込むか実行時にファイルを開いて処理したほうがマトモな気がします。

投稿2021/07/09 00:28

編集2021/07/09 00:34
int32_t

総合スコア20941

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1079

2021/07/09 00:35

C++の書き方まで記載して頂きありがとうございます。 無事に解決できました。
guest

0

Cは文字列リテラルの結合できませんでしたっけ?
コレ↓試してみて。

const char *FORM = "<!DOCTYPE html>" "<html lang=\"ja\">" "<head><meta charset=\"Shift_JIS\"><title>ユニット設定</title></head>" "<body><h1>WiFi設定</h1>" "<form method=\"post\">" "<p>SSID:<br><input type=\"text\" name=\"SSID\"></p>" "<p>パスワード:<br><input type=\"text\" name=\"Pass\"></p>" "<p><input type=\"submit\" value=\"保存\"></p>" "</form>" "</body>";

投稿2021/07/09 00:30

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1079

2021/07/09 00:37

皆様の仰る通り文字列リテラルの結合で解決できました。 ありがとうございます。
guest

0

C言語では、複数の文字列リテラルが並んでいると、それは連結されるという仕様がありますので、それを利用すれば途中で改行をはさみつつ書けます。

C

1const char *FORM = 2 "<!DOCTYPE html><html lang=\"ja\">" 3 "<head><meta charset=\"Shift_JIS\">" 4 "<title>ユニット設定</title></head>" 5 "<body><h1>WiFi設定</h1>" 6 "<form method=\"post\">" 7 "<p>SSID:<br><input type=\"text\" name=\"SSID\"></p>" 8 "<p>パスワード:<br><input type=\"text\" name=\"Pass\"></p>" 9 "<p><input type=\"submit\" value=\"保存\"></p>" 10 "</form></body>";

投稿2021/07/09 00:29

maisumakun

総合スコア145201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1079

2021/07/09 00:36

分かりやすいご回答ありがとうございます。 無事に解決できました。
guest

0

ベストアンサー

普通に改行すればいいです
ただ、改行文字がそこんところに追加されるので、サイズが増えますが

コード上だけでいい、ってならこういう書き方もできます

C

1const char *FORM = "<!DOCTYPE html><html lang=\"ja\">" 2 "<head><meta charset=\"Shift_JIS\"><title>ユニット設定</title></head>" 3 "<body><h1>WiFi設定</h1><form method=\"post\"><p>SSID:<br>" 4 "<input type=\"text\" name=\"SSID\"></p><p>パスワード:<br>" 5 "<input type=\"text\" name=\"Pass\"></p><p><input type=\"submit\" value=\"保存\"></p>" 6 "</form></body>";

投稿2021/07/09 00:23

編集2021/07/09 00:29
y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1079

2021/07/09 00:34

ご回答ありがとうございます。 無事に思い通りに書くことができそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問