• ベストアンサー

コンパイル失敗と表示されましたがどこが間違っているでしょうか?

インターネット上のC言語入門講座で例題どうりにコンパイラーに入力したつもりなのですが[コンパイルに失敗しました。]と表示されてしまいどこが間違っているのか分かりません。詳しい方教えてください。 #include<stdio.h> void main() { int count; for (count = 0; count < 5; count++) { printf("countは今%dです\n", count); } if(count == 4){ printf("正解は4でした\n"); }else if(count == 5) { printf("正解は5でした\n"); }else { printf("4でも5でもありませんでした\n"); } }

質問者が選んだベストアンサー

  • ベストアンサー
  • TT414
  • ベストアンサー率18% (72/384)
回答No.5

>C\Documents and Setting\Owner\My Documents\C\web Ckouza3shou コンパイルに失敗した理由はパス名、ファイル名が「C Pad for LSI-86」で扱えない名前だからです。 フォルダ名、ファイル名は8.3形式しか使えません。 上とは別ですが、Cのソースファイルの拡張子は「.c」したほうが良いでしょう。

etx
質問者

お礼

ご回答ありがとうございました。8.3形式というのがよくわからないのですがとにかく名前を短くしてみたところ成功しました。

その他の回答 (5)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.6

ANo.3です。「C Pad for LSI-86」をインストールして試してみましたが・・・ ANo.5さんの回答にあるように、長いファイル名だと誤動作するようですね。 #実行ファイルが「WEBCKO~2.EXE」の様な8.3形式のファイルで作られてしまい、 #実行しようと「web Ckouza3shou.exe」を捜しにいって「見つからない」・・・ ファイル名を短くしてください。

etx
質問者

お礼

ご回答ありがとうございます。名前を短くしてみてところ成功しました。

  • precog
  • ベストアンサー率22% (966/4314)
回答No.4

>どこが間違っているのか分かりません。詳しい方教えてください。 間違ってるのは、コンパイラーの使い方。 コンパイラーを使うのは、人間がするミスを事前に防ぐためです。なので、コンパイラーの出すメッセージには気を配ってきちんと読む必要があります。 コンパイルエラーが出るたびにここで聞くつもりですか?

etx
質問者

お礼

ご回答ありがとうございました。コンパイラーの出すメッセージを読んでも意味が分からなかったので質問した次第です。 名前を短くしてみたところ成功しました。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

使用しているコンパイラは何でしょう? また、どうやって(どういう手順・パラメータ等)でコンパイルしましたか?

etx
質問者

補足

コンパイラー名は[C Pad for LSI-86]です。 入力方法は印刷したものを見ながら手入力です。 ご質問の中のパラメータの意味が良く分かりません。 (パラメータ自体の意味は大体分かっているつもりですが) 実行ボタンを押すと[コンパイルに失敗しました。] [ファイル"C\Documents and Setting\Owner\My Documents\C\web Ckouza3shou exeは存在しません。]と表示されます。なお、web Ckouza3shouは私がプログラムにつけた名前です。そしてOKボタンを押すと下部に ■C:\Documents and Settings\Owner\My Documents\C> LCC WEBCKO~1.C lld @link.i と表示されています。

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

コンパイルエラーは発生しないのですが、実行すると毎回 > }else if(count == 5) { > printf("正解は5でした\n"); ここのところしか通らない、あまりおもしろみのないコードですね。

etx
質問者

お礼

ご回答ありがとうございます。 やはりうまくいきません。

  • Evreux
  • ベストアンサー率29% (225/774)
回答No.1

失敗した時に表示されたメッセージはなぜ書かないのですか? パッと見ではミスは見つからないので、 void main() という書き方がコンパイラによってはだめだった気がする。という程度のことしか思いつきません int main(void) ではだめですかね?

etx
質問者

補足

ご回答ありがとうございます。 メッセージは単に[コンパイルに失敗しました]だけです。具体的に指摘された箇所については修正しました。 void main(void)でもint main(void)でもだめでした。