みんなの「教えて(疑問・質問)」にみんなで「答える」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;
}

コンパイルエラー
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;

上記のようになります。
どうすればいいでしょうか?
ご多忙中申し訳ございません。
ご回答の程宜しくお願い申し上げます。
          高橋耕造

投稿日時 - 2018-04-18 21:03:09

QNo.9489958

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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/
とかを参考にされてはいかがでしょうか。

投稿日時 - 2018-04-19 22:38:49

ANo.3

>想像ですが、printf文とreturn文の間の空行、およびreturn文の前方インデントに>「全角ブランク」が入っていたりしませんか?

質問文のコード部分をエディタへコピペしたら

入ってました。全角スペース。

投稿日時 - 2018-04-18 22:26:01

補足

ご回答誠にありがとうございました。
お陰様でコンパイルエラーは出なくなりました。
どころが、今度は実行でエラーメッセージが出ました。
        記

C:\MinGW>text4.exe
'text4.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

どうしたらいいでしょうか?
度々申し訳ございません。
ご回答の程宜しくお願い申し上げます。

投稿日時 - 2018-04-18 23:52:52

お礼

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

投稿日時 - 2018-04-18 23:37:06

ANo.2

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

投稿日時 - 2018-04-18 21:52:12

補足

ご回答誠にありがとうございました。
お陰様でコンパイルエラーは出なくなりました。
どころが、今度は実行でエラーメッセージが出ました。
        記

C:\MinGW>text4.exe
'text4.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

どうしたらいいでしょうか?
度々申し訳ございません。
ご回答の程宜しくお願い申し上げます。

投稿日時 - 2018-04-18 23:53:32

お礼

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

投稿日時 - 2018-04-18 23:38:20

ANo.1

printfの中をすべて半角英語で書き直してもう一度コンパイルしてください
エラーが出なければやはり文字コードのエラーですね

現在SHIFT-JISとのことですのでEUCかUTF-8でもお試しいただければうまくいくと思います

投稿日時 - 2018-04-18 21:12:15

補足

ご回答誠にありがとうございました。
お陰様でコンパイルエラーは出なくなりました。
どころが、今度は実行でエラーメッセージが出ました。
        記

C:\MinGW>text4.exe
'text4.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

どうしたらいいでしょうか?
度々申し訳ございません。
ご回答の程宜しくお願い申し上げます。

投稿日時 - 2018-04-18 23:54:09

お礼

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

投稿日時 - 2018-04-18 23:39:34

あなたにオススメの質問