C言語で実行エラーが発生する理由と解決方法

このQ&Aのポイント
  • C言語でコンパイルは成功するものの、実行時にエラーが発生する事象が発生しています。
  • エラーメッセージによると、'text4.exe'が認識されておらず、実行できないという問題です。
  • この問題の解決方法は、コンパイル時に生成された実行ファイルが正しく指定されているかを確認することです。
回答を見る
  • ベストアンサー

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' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ご多忙のところ 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

GNUコンパイラーをWindows 10へインストールして検証しましたが正常に動作しました。 ソースはメモ帳で作成し、C:\MinGWへ保存しました。 添付画像のようにコマンドプロンプトで質問のようにコンパイルし、実行ファイルのtest.exeを実行しています。 尚、Windows PwerShellで操作する場合は実行するファイル名の先頭にPathを付加する必要があるようです。 .\test4.exe または C:\MinGW\test.exe

takakou7979
質問者

お礼

ご回答誠にありがとうございます。 お陰様で成功しました。

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.3

>C:\MinGW>gcc text4.c -o test4 これは何をやっていますか(何をコンパイルして何という実行ファイルを作っていますか)。 >C:\MinGW>text4.exe これは何をやっていますか(何を実行していますか)。 自分が何をやったのかを見直せばわかることです。 ついでに質問にある「shift jif」って何ですか。

takakou7979
質問者

お礼

ご回答誠にありがとうございます。 お陰様で成功しました。

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

>'text4.exe' は、内部コマンドまたは外部コマンド、 >操作可能なプログラムまたはバッチ ファイルとして認識されていません。 これは、C言語とは全く関係のないエラーメッセージです。 text4.exe を実行しようとしたが、 C:\MinGW というフォルダーには存在しない、という意味です。 >gcc text4.c -o test4 test4.exe というファイルならば存在するのではありませんか?

takakou7979
質問者

お礼

ご回答誠にありがとうございます。 お陰様で成功しました。

  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.1

C:\MinGW>./text4.exe としたら?

takakou7979
質問者

お礼

ご回答誠にありがとうございます。 お陰様で成功しました。

関連するQ&A

  • 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); 上記の通りエラーメッセージが出ます。 どうしたらいいでしょうか? ご回答の程宜しくお願い申し上げます。

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

  • C言語には環境変数の設定、要りませんよね。

    いつも大変お世話になり誠にありがとうございます。 1つ前の質問は間違っておりました。 いっぱいタイプミスがありました。 今度は実行で一度出たエラーが出ました。 でもその時と内容が違います。 どうすればいいでしょうか?       記 コード #include<stdio.h> int main(void) { int i; double d; char str[100]; printf("整数値を入力してください。\n"); scanf("%d", &i); printf("小数値を入力してください。\n"); scanf("%lf", &d); printf("文字列を入力してください。\n"); scanf("%s", str); printf("入力した整数値は%dです。\n", i); printf("入力した小数値は%lfです。\n", d); printf("入力した文字列は%sです。\n",str); return 0; } 実行で C:\MinGW>text21.exe 'text21.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ました。 ご多忙中恐れ入ります。 ご回答の程宜しくお願い申し上げます。

  • C言語、成績は4194432?

    いつも大変お世話になり誠にありがとうございます。 標記の件。 おかしな実行結果になりました。 どうしてでしょうか? ご回答の程宜しくお願い申し上げます。       記 コード #include <stdio.h> int main(void) { int res; printf("成績を入力してください。\n"); scanf("%d", &res); printf("成績は%dです。\n", res); switch(res){ case 1: printf("もっとがんばりましょう。\n"); break; case 2: printf("もう少しがんばりましょう。\n"); break; case 3: printf("さらに上をめざしましょう。\n"); break; case 4: printf("たいへんよくできました。\n"); break; case 5: printf("たいへん優秀です。\n"); break; } return 0; } 実行結果 C:\MinGW>test20.exe 成績を入力してください。 A 成績は4194432です。 C:\MinGW>test20.exe 成績を入力してください。 b 成績は4194432です。 C:\MinGW>test20.exe 成績を入力してください。 v 成績は4194432です。 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • C言語、度々申し訳ございません。エラーです。

    いつも大変お世話になり誠にありがとうございます。 標記の件。 コードとコンパイルエラーを書きます。 度々すいません。 どうしたらいいでしょうか? ご回答の程宜しくお願い申し上げます。            高橋耕造 1.コード #include <studio.h> int main(void) { printf("%d\n",123); printf("\\100もらった\n"); printf("またあした\n"); return 0; } 2.コンパイルエラー C:\MinGW>gcc test2.c -o test2 test2.c:1:20: fatal error: studio.h: No such file or directory #include <studio.h> ^ compilation terminated. 検索しましたが解りません。 ご回答の程宜しくお願い申し上げます。

  • C言語、エラーメッセージが紐解けません。

    いつも大変お世話になり誠にありがとうございます。 標記の件。 エラーメッセージが紐解けません。 どうかどなたかアドバイスください。 下記にコードとコンパイルエラーを書きます。        記 コード #include <stdio.h> typedef struct Car{ int num; double gas; }Car; int main(void) { printf("int型のサイズは%dバイトです。\n", sizeof(int)); printf("double型のサイズは%dバイトです。\n", sizeof(double)); printf("構造体struct Car型のサイズは%dバイトです。\n",sizeof(Car)); printf("構造体struct Car型へのポインタのサイズは%dバイトです。\n",sizeof(Car *)); return 0; } コンパイラーエラー C:\MinGW>gcc text20.c -o text20 text20.c: In function 'main': text20.c:12:11: warning: unknown escape sequence: '\221' printf("構造体struct Car型のサイズは%dバイトです。\n",sizeof(Car)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ text20.c:13:11: warning: unknown escape sequence: '\221' printf("構造体struct Car型へのポインタのサイズは%dバイトです。\n",sizeof(Car *)); 以上です。 ご多忙中恐れ入ります。 ご回答の程宜しくお願い申し上げます。

  • 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 以上です。 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • C言語 "myfunc.h"がエラーになります。

    いつも大変お世話になっております。 C言語に関する質問です。 "myfunc.h"の箇所がコンパイルエラーになります。 全体のコードとコンパイルエラーが下記です。 #include <stdio.h> #include "myfunc.h" int main(void) { int num1, num2, ans; printf("1番目の整数を入力してください。\n"); scanf("%d", &num1); printf("2番目の整数を入力してください。\n"); scanf("%d", &num2); ans = max(num1, num2); printf("最大値は%dです。\n" , ans); return 0; } コンパイルエラー C:\MinGW>gcc text13.c -o text13 text13.c:2:20: fatal error: myfunc.h: No such file or directory #include "myfunc.h" ^ compilation terminated. です。 ご多忙のところ恐れ入ります。 どこがおかしいのか、 ご回答のほどよろしくお願い申し上げます。

  • C言語についてです。(困っております)

    プログラミング初心者で右も左もわからないので力になってください。 ニコニコ動画で、【第05回】ミクと学ぶC言語【if文】という動画を見ています。 その中で出てきたソースコードで、コンパイルまではうまくいくのですが コマンドプロンプトの画面で、文字を入力すると、動作を停止しました。 という通知が出てきます。 うまくできなくて困っているのでどうかわかりやすくアドバイスの程 よろしくお願いします。 ソースコードです。 ↓ /* BMI.c */ #include<stdio.h> int main(void){ double height,weight,BMI; printf("身長[ m]:"); scanf("%if",&height); printf("体重[kg]:"); scanf("%if",&weight); BMI=weight/height/height; printf("BMIは%fです。\n",BMI); if(BMI>=25){ printf("肥満です!\n"); }else if(BMI<18.5){ printf("低体重です!\n"); }else{ printf("標準です!\n"); } return 0;