ページ 11

swtch文でエラー

Posted: 2010年11月28日(日) 21:16
by C言語勉強中@コンタ
テキストファイルから文字列を読み出し、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' が正しくありません。

よろしくお願いします。

Re: swtch文でエラー

Posted: 2010年11月28日(日) 21:26
by softya(ソフト屋)
switch~caseで扱えるのは数値だけです。
なので文字列でエラーになっています。
全てif文で書きなおしてくださいね。

こんなのが出来るのは、PHPとか別の言語だけですよ。

Re: swtch文でエラー

Posted: 2010年11月28日(日) 21:38
by C言語勉強中@コンタ
softyaさん

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

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