• 締切済み

C言語、コンパイルエラーの原因?

いつも大変お世話になり誠にありがとうございます。 標記の件。 shift jifでコンパイルしているのですが コンパイルエラーが発生します。 下記にコードとエラーメッセージを書きます。 コード #include <stdio.h> int main(void) { printf("8進数101の文字コードをもつ文字は%cです。\n", '\101'); printf("16進数61の文字コードをもつ文字は%cです。\n", '\x61');      return 0; } コンパイルエラー gcc text4.c -o text4 text4.c: In function 'main': text4.c:7:1: error: stray '\201' in program    ^ text4.c:7:2: error: stray '@' in program    ^ text4.c:7:3: error: stray '\201' in program    ^ text4.c:7:4: error: stray '@' in program    ^ text4.c:8:1: error: stray '\201' in program   return 0; ^ text4.c:8:2: error: stray '@' in program   return 0; ^ text4.c:8:3: error: stray '\201' in program   return 0; ^ text4.c:8:4: error: stray '@' in program   return 0; 上記のようになります。 どうすればいいでしょうか? ご多忙中申し訳ございません。 ご回答の程宜しくお願い申し上げます。           高橋耕造

みんなの回答

  • tkf-
  • ベストアンサー率58% (821/1396)
回答No.4

> gcc text4.c -o text4 このようにコンパイルしたなら、作成された実行ファイルは、拡張子なしの「text4」というファイルなので、 > C:\MinGW>text4.exe > 'text4.exe' は、内部コマンドまたは外部コマンド、 > 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 実行することはできません。 gccの出力ファイルに、.exeを指定するなり、あとからファイル名変更するなりしてください。 ex.> gcc text4.c -o text4.exe また、実行ファイルのパス(環境変数Path)にも注意してください。 ---- MinGWをご利用になられているのでしょうか。 であれば、 https://webkaru.net/clang/mingw-gcc-hello-world/ とかを参考にされてはいかがでしょうか。

回答No.3

>想像ですが、printf文とreturn文の間の空行、およびreturn文の前方インデントに>「全角ブランク」が入っていたりしませんか? 質問文のコード部分をエディタへコピペしたら 入ってました。全角スペース。

takakou7979
質問者

お礼

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

takakou7979
質問者

補足

ご回答誠にありがとうございました。 お陰様でコンパイルエラーは出なくなりました。 どころが、今度は実行でエラーメッセージが出ました。         記 C:\MinGW>text4.exe 'text4.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 どうしたらいいでしょうか? 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • tkf-
  • ベストアンサー率58% (821/1396)
回答No.2

エラーメッセージからすると、7行目、8行目におかしな文字があるとありますね。 想像ですが、printf文とreturn文の間の空行、およびreturn文の前方インデントに「全角ブランク」が入っていたりしませんか?

takakou7979
質問者

お礼

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

takakou7979
質問者

補足

ご回答誠にありがとうございました。 お陰様でコンパイルエラーは出なくなりました。 どころが、今度は実行でエラーメッセージが出ました。         記 C:\MinGW>text4.exe 'text4.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 どうしたらいいでしょうか? 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • agehage
  • ベストアンサー率22% (2552/11348)
回答No.1

printfの中をすべて半角英語で書き直してもう一度コンパイルしてください エラーが出なければやはり文字コードのエラーですね 現在SHIFT-JISとのことですのでEUCかUTF-8でもお試しいただければうまくいくと思います

takakou7979
質問者

お礼

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

takakou7979
質問者

補足

ご回答誠にありがとうございました。 お陰様でコンパイルエラーは出なくなりました。 どころが、今度は実行でエラーメッセージが出ました。         記 C:\MinGW>text4.exe 'text4.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 どうしたらいいでしょうか? 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

関連するQ&A

  • C言語、実行でエラー。

    いつも大変お世話になり誠にありがとうございます。 標記の件。 shift jifでコンパイルしているのですが コンパイルはお陰様で成功したのですが、 実行でエラーが発生します。 下記にコードとエラーメッセージを書きます。        記 コード #include <stdio.h> int main(void) { printf("8進数101の文字コードをもつ文字は%cです。\n", '\101'); printf("16進数61の文字コードをもつ文字は%cです。\n", '\x61'); return 0; } 実行 C:\MinGW>gcc text4.c -o test4 C:\MinGW>text4.exe 'text4.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ご多忙のところ 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • C言語、度々すいません。コンパイルエラーです。

    いつも大変お世話になり誠にありがとうございます。 下記コードがコンパイルエラーになり色々と 変えてみたのですが、どうしてもコンパイルエラー となります。 度々すいません。 ご回答の程宜しくお願い申し上げます。      記 1.コード #include <stdio.h> int main(void) { char ch; printf("アルファベットの最初の文字は何ですか?\n"); ch = getchar(); printf("アルファベットの最初の文字は%cです。\n" ch); return 0; } 2.コンパイルエラー C:\MinGW>gcc test8.c -o test8 test8.c: In function 'main': test8.c:9:51: error: expected ')' before 'ch' printf("アルファベットの最初の文字は%cです。\n" ch); 上記の通りエラーメッセージが出ます。 どうしたらいいでしょうか? ご回答の程宜しくお願い申し上げます。

  • MacのターミナルでC言語コンパイルエラー

    Macのターミナルで"HelloWorld.c"のコンパイルで以下のエラーが出ます。 HelloWorld.c:1: error: expected identifier or ‘(’ before ‘{’ token HelloWorld.c:1: error: stray ‘\’ in program HelloWorld.c:1: error: stray ‘\’ in program HelloWorld.c:1: error: stray ‘\’ in program HelloWorld.c:1: error: stray ‘\’ in program HelloWorld.c:1: error: stray ‘\’ in program HelloWorld.c:2: error: stray ‘\’ in program HelloWorld.c:2: error: stray ‘\’ in program HelloWorld.c:2: error: stray ‘\’ in program HelloWorld.c:2: error: stray ‘\’ in program HelloWorld.c:3: error: stray ‘\’ in program HelloWorld.c:3: error: stray ‘\’ in program HelloWorld.c:3: error: stray ‘\’ in program HelloWorld.c:3: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:4: error: stray ‘\’ in program HelloWorld.c:5: error: stray ‘\’ in program HelloWorld.c:6: error: stray ‘\’ in program HelloWorld.c:6: error: stray ‘\’ in program HelloWorld.c:6: error: stray ‘\’ in program HelloWorld.c:6: error: stray ‘\’ in program HelloWorld.c:8: error: stray ‘\’ in program HelloWorld.c:8: error: stray ‘\’ in program HelloWorld.c:8: error: stray ‘\’ in program HelloWorld.c:8: error: stray ‘#’ in program HelloWorld.c:8:24: warning: backslash-newline at end of file HelloWorld.c:8: error: stray ‘\’ in program HelloWorld.c:8: error: stray ‘\’ in program ソースは以下 #include int main(void) { printf("Hello, World!¥n"); return 0; } どなたかお助けを!! まだ、プログラム超初心者です。よろしくお願いします。

  • C言語ファイルのコンパイルができない。

    先日からVineLinux3.1を使い始めました。 C言語ファイルa.c(「a」という文字を出力するだけのごく簡単なものです。このファイル自体には問題はありません。)をコンパイルしようと cc a.c と入力すると、 a.c:2:9: #include は”ファイル名”あるいは<ファイル名>を必要とします a.c:3: error: stray '\241' in program a.c:3: error: stray '\241' in program a.c:3: error: stray '\241' in program a.c:3: error: stray '\241' in program a.c: 関数 'main' 内: a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:6: error: stray '\241' in program a.c:4: 警告: 'main'の戻り値の型が 'int'ではありません と出てコンパイルできません。 Linuxのことはまだほとんど分からないので、できるだけ丁寧におしえていただけるとうれしいです。 よろしくお願いします。

  • コンパイル時のエラー

    毎度c言語の質問でお世話になっております。 ついにコンパイル方法が分かり、いろいろと オブジェクトファイルを作っていますが、 また、わからないことが出てきました。 コンパイルするとエラーになります。 このようにプログラミングすると下のようなエラーが 出てきます。 なぜなのでしょうか? 回答お願いします。 #include <stdio.h> main () { int i = 1; float f = 0.2; double d = 1.25; printf("変数i:%d f:%f d:%lf", i, f, d); return 0; } エラー内容 stray \129 in program stray @ in program   

  • C言語 コンパイルエラー(文字列または文字定数が閉じていない)

    下記コードでコンパイルすると、コンパイルエラーとなります。試しに、"さようなら"を、"さような"に変更すると、コンパイルエラーは なくなります。どうして、コンパイルエラーとなるのか分からずに困っています。ちなみに、コンパイラは、ボーランドのものを使っています。 ▼エラーとなるコード #include <stdio.h> int main(void) { printf("こんにちは"); printf("さようなら"); return 0; } ▼コンパイルエラー内容 エラー E2380 sample08.c 7: 文字列または文字定数が閉じていない(関数 main ) エラー E2121 sample08.c 9: 関数呼び出しに ) がない(関数 main ) 警告 W8070 sample08.c 10: 関数は値を返すべき(関数 main )

  • C++のコンパイルエラーが

    おこります。 --------------------------------- #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } -------------------------------------- をコンパイルするのですができません。 以下のエラーが出ます。 --------------------------------------- エラー E2209 sample.c 1: インクルードファイル 'stdio.h' をオープンできない 警告 W8065 sample.c 5: プロトタイプ宣言のない関数 'printf' の呼び出し(関数 main ) *** 1 errors in Compile *** -------------------------------------

  • C言語 どこがコンパイルエラーか解りません。

    いつも大変お世話になっております。 標記の件。 どこがエラーなのか解りません。 2時間くらい、にらめっこが続いています。 どこがエラーなのか教えて下さい。 ご回答のほどよろしくお願い申し上げます。 コード #include <stdio.h> int a = 0; void func(void) { int c = 2; printf("func関数では変数aとcが使えます。¥n”); printf("変数aの値は%dです。\n",a); /*printf("変数bの値は%dです。\n",b);*/ printf("変数cの値は%dです。\n",c); } int main(void) { int b = 1; printf("main関数では変数aとbが使えます。\n"); printf("変数aの値は%dです。\n", a); printf("変数bの値は%dです。\n", b); /*printf("変数cの値は%dです。\n", c); */ func(); return 0; } コンパイルエラー printf("func関数では変数aとcが使えます。¥n”); ^ text10.c:9:8: error: missing terminating " character printf("func関数では変数aとcが使えます。¥n”); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ text10.c:10:34: error: expected ')' before ';' token printf("変数aの値は%dです。\n",a); ^ text10.c:10:1: warning: passing argument 1 of 'printf' makes pointer from integer without a cast [-Wint-conversion] printf("変数aの値は%dです。\n",a); ^~~~~~ In file included from text10.c:1:0: c:\mingw\include\stdio.h:454:38: note: expected 'const char *' but argument is of type 'int' _CRTIMP __cdecl __MINGW_NOTHROW int printf (const char *, ...); ^~~~~~ text10.c:13:1: error: expected ';' before '}' token } どうかよろしくお願いいたします。

  • C言語、度々申し訳ございません。コンパイルエラー。

    いつも大変お世話になり誠にありがとうございます。 下記コードがコンパイルエラーになります。 どうしてでしょうか? 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。 コード #include <stdio.h> int main(void) { int i; printf("1~10までの偶数を出力します。\n"); for(i=1; i<=10; i++){ if((i % 2) == 0) print("%d\n", i); } return 0; } コンパイルエラー C:\MinGW>gcc test21.c -o test21 test21.c: In function 'main': test21.c:10:14: warning: implicit declaration of function 'print' [-Wimplicit-function-declaration] print("%d\n", i); ^~~~~ C:\Users\jump7\AppData\Local\Temp\ccmLpsET.o:test21.c:(.text+0x3f): undefined reference to `print' collect2.exe: error: ld returned 1 exit status 以上です。 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • エラーが出てコンパイルができません…

    #include<stdio.h> void main(void) { int i; i=0; while(i<3){ printf("おーい\n\"); printf(" やっほー\n\n\"); i=i+1; } printf("プログラムを終了します\"); } と本に書いてあった通りに入力したら、下のようなエラーが出てきました。 7: 文法エラー before \"i\" 9: stray \'\\\' in program 10: stray \'\\\' in program 10: 文法エラー before \"n\" 11: stray \'\\\' in program 11: 文法エラー before \"n\" 12: `i\' undeclared (first use in this function) 12: (Each undeclared identifier is reported only once 12: for each function it appears in.) トップレベル: 15: error: 文法エラー before string constant 15: conflicting types for built-in function `printf\' 15: data definition has no type or storage class 16:2: ファイル末尾に改行がありません 解決策と原因を教えて下さい。 宜しくお願い致します。

専門家に質問してみよう