swtch文でエラー

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
C言語勉強中@コンタ

swtch文でエラー

#1

投稿記事 by C言語勉強中@コンタ » 13年前

テキストファイルから文字列を読み出し、switch文でcase分けしようとしてるのですが、
エラーが出てしまい、とまっています。
構文的におかしなところがあるかチェックしたのですが、なかなか思い当たらなく、
ここに相談させていただきました。

while(fgets(buf,256,configfile) != NULL)
{
if(strchr(buf,'#') == NULL ) // 先頭が"#"かチェック
{
switch(buf[])
{
case"HttpPort":
break;
case"ServerName":
break;
case"DocumentRoot":
break;
case"DirectoryIndex":
break;
default:
break;
// 先頭に'#'がなければ読み出す
printf("%s",buf);
}
}
}
エラーの内容は、下記のような内容です。
C2059: 構文エラー : ']'
C2046: 'case' が正しくありません。
C2046: 'case' が正しくありません。
C2046: 'case' が正しくありません。
C2047: 'default' が正しくありません。

よろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: swtch文でエラー

#2

投稿記事 by softya(ソフト屋) » 13年前

switch~caseで扱えるのは数値だけです。
なので文字列でエラーになっています。
全てif文で書きなおしてくださいね。

こんなのが出来るのは、PHPとか別の言語だけですよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C言語勉強中@コンタ

Re: swtch文でエラー

#3

投稿記事 by C言語勉強中@コンタ » 13年前

softyaさん

switch文では、整数型定数しか使えないんですね。

回答ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る