C言語での環境変数設定について

このQ&Aのポイント
  • C言語での環境変数の設定について不要なのか
  • C言語の実行時エラーについての質問
  • C言語でscanf関数を使った入力の方法
回答を見る
  • ベストアンサー

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

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

  • ベストアンサー
  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.1

そのEXE(実行ファイル)はどのフォルダに有るのですか? コマンドプロンプトから実行ファイルを起動する際には、まずカレントディレクトリを探し、なければ環境変数PATHで記述されているディレクトリの中から指定された実行ファイルを探します。 つまり、ビルドしたときに実行ファイルをどのディレクトリ(フォルダ)に生成するのか… コマンドプロンプトから実行するのなら実行ファイルを生成するフォルダをカレントディレクトリにしてください。 もしくは、実行ファイルをフルパス(ドライブ名からすべて記述すること)で記述しましょう。

jump7799
質問者

お礼

ご回答誠にありがとうございました。 おっしゃる事が僕には難解です。 システム環境変数には Path C¥MinGW¥bin;C:¥ProgramFiles¥Git¥cmd;C:¥WINDOWS ¥system32;... と書いてありました。 そこで疑問ですが、実行するとき何と入れればいいのでしょうか? 度々すいません。 ご回答の程宜しくお願い申し上げます。

jump7799
質問者

補足

いつの間にか、実行できました。マダ不思議です。 C:\MinGW>text21.exe 整数値を入力してください。 15 小数値を入力してください。 39.58942 文字列を入力してください。 pretty 入力した整数値は15です。 入力した小数値は39.589420です。 入力した文字列はprettyです。 今後ともよろしくお願いいたします。

その他の回答 (1)

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

PATHもいいです。ドライブ名からでもいいんですが、 C:\MinGW>./text21.exe という手もあります。 ドット、スラッシュを前につけます。

jump7799
質問者

お礼

ご回答誠にありがとうございます。 先生はあまりにも達人過ぎて おっしゃる事が難しいです。 デモ、凄くありがたいです。 今後とも宜しくお願い致します。

関連するQ&A

  • C言語で困っています...

    入力した数値の列だけ○と×を縦に、段々になるように表示する (最後の行は×にならなければいけない)プログラムを作成しています。 (実行例) ○と×を表示します。何列?:10            ×           ○×          ×○×         ○×○×         ×○×○×       ○×○×○×      ×○×○×○×    ○×○×○×○× ×○×○×○×○× ○×○×○×○×○× 途中までプログラミングできたのですが、 偶数の数値を入れたときはきちんと最後の行は×になっても 奇数の数値を入力すると○が最後の行になってしまい、うまくいきません。 どこがだめなのでしょうか? どなたか教えてください。 /* 入力した数値の列だけ、○と×を縦に、   段々になるように表示する(最後の行は×になる) */ #include <stdio.h> int main(void) { int i, j, n; printf("○と×を表示します。何列?:"); scanf("%d", &n); for (i=0; i<n; i++){ for (j=0; j<n; j++){ if (j >= (n - 1) - i){ if (j % 2 == 0) printf("○"); else printf("×"); } else printf(" ");//全角スペース } printf("\n"); } return 0; }

  • C言語でscanf()が先に実行されるのはなぜですか?

    C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }

  • C言語の演習2

    何度も似たような質問を出していますがよろしくお願いします。。。 問題は 2つの整数を入力してください。 整数A:54 整数B:84 Aの値はBの64.285714%です。 というものです。あっているか確認お願いします。 #include<stdio.h> int main(void) { int vx, vy; puts("2つの整数を入力してください。"); printf("整数A"); scanf("%lf",&vx"); printf("整数B"); scanf("%lf",&vy"); printf("Aの値はbの%f%です。/n",(double)(vx/vy)); return 0; } であっていますか??お願いします。

  • C言語の初歩的な質問

    質問1----------------------------------------- #include<stdio.h> int main() {  int a;  char b[10];  for(int i = 0;i < 2;i++){   scanf("%d",&a);   printf("整数%d\n",a);  }  scanf("%s",b);  printf("文字列%s\n",b); } /* この際に、例えばabと入力すると結果が 整数-858993460 整数-858993460 文字列ab となり整数入力を無視して進められるのはなぜでしょうか? */ 質問2----------------------------------------- #include<stdio.h> void func(int**); int main() {  int *p;  func(&p);  printf("%d",*p); } void func(int **pp) {  int n = 10;  *pp = &n; } /* func関数のnはスコープからはずれて変数の寿命がなくなるはずなのにprintfで表示されるのはなぜでしょうか? */ ---------------------------------------------- C言語は一冊の本とネットの入門サイトをかじった程度の理解です。

  • C言語の問題です。よろしくお願いいたします。

    C言語の問題です.。10個の整数を入力し配列に保存した後、入力された数字の中に5の倍数が含まれているかを調べ、 含まれていた時には「5の倍数が含まれています」含まれていない時に「5の倍数が含まれていません」と表示させるプログラムを作りなさい。 自分なりに考えて作ったのですが、以下の通りでよろしいのでしょうか? #include <stdio.h> main() { int i; double c[10]; for (i = 0; i < 10; i++) { printf("整数を10個入力してください.(%d つ目) : ", i+1); scanf("%lf", &c[i]); } if(c[i] % 5 == 0){ printf("5の倍数が含まれています\n"); } else{ printf("5の倍数が含まれていません\n"); } return 0; }

  • C言語の配列について

    配列を20 定義し値を入力して合計値を出したいのですがどうすればよいのでしょうか 下のソースでエラーはおこりませんでした 何がちがうのでしょうか #include <stdio.h> int main() { int a[20]={}; int i, sum; printf("整数を入力してください:"); scanf("%d",&a); printf("\n"); for (i = 0; i < 10; i++) { sum += a[i]; } printf("sum= %d\n", sum); return 0; }

  • C言語の初心者です。

    ポインタについて教えてください。 #include <stdio.h> int main() { int *p,a[2],i=0; p=a; scanf("%d",p); printf("%d\n",*p); i++; scanf("%d",p+i); printf("%d\n",*(p+i)); return 0; } これは整数を入力して出力といった簡単なプログラムなのですが、こういうポインタの使いかたって普通はしないでしょうか・・?。ポインタは使わずにこういう場合は2次元配列とかで出すのが普通なのでしょうか? また、下のプログラムなのですが、上記のプログラムをただ単にキャラ型で試しただけなのですが、どうして実行時エラーがおこってしまうのでしょうか? printfのところの*nameの、*を抜くと実行時エラーはおこりません。しかし、上記の整数では*はつけたままでも エラーしません。 整数とキャラ型では何かちがうのでしょうか?? #include <stdio.h> int main() { char *name,a[10]; name=a; printf("入力---"); gets(name); printf("%s\n",*name); return 0; } 初心者特有の質問をしてしまって申しわけございません。でも、ずっと悩んでて、すこしずつでもポインタの本当の使いかたを知りたいとおもいまして、初期段階ではありますがどうしても解らなかったので質問させていただきました。 そういうものだから!以外でご説明いただける方がいらっしゃいましたら宜しくお願いいたします。

  • C言語文字数4つカウント

    こんにちは。大学の課題で「キーボードから入力した文字数に含まれる'h''o''g''e'の4つの文字数をカウントする関数を含むプログラムを完成させよ」という課題がありました。なかなかできず現段階では以下のようになっています。どうすれば問題文のように実行できますか? #include <stdio.h> char str_chnum(const char str[], int ch) { int count = 0; int i; for(i = 0; str[i] != '\0'; i++) { if(str[i] == ch) count++; } return(count); } int main(void) { char str[128]; int ch; printf("文字列を入力してください:"); scanf("%s", str); printf("検索する文字を入力してください:"); scanf(" %c", &ch); printf("%cは%d個ありました。\n", ch, str_chnum(str, ch)); return(0); }

  • while文について、c言語です。

    ぼくはプログラム始めたばかりです。ミスを見つけられた方、ご指導お願いします。 正整数nを入力して、nの階乗をもとめるプログラムを作りたいのですが、実行結果がいつも1になります。どこがおかしいか教えてください。以下のプログラムです。 #include <stdio.h> int main(void) { int i, n, s; printf("n = ?"); scanf("%lf", &n); s = 1; i = 1; while(i <= n) { s = s * i; i = i + 1; } printf("s = %3d\n", s); return 0; }

  • C言語について

    ソートを使い入力した数値を並び替える。昇順、降順を選べるようにする。 順位を付けるた。ただし、複数同位があった場合にはその個数分順位が変更する。 このような問題なのですが 入力個数の部分までは自力でできたのですが、ソートを習っていないのでこの後がよく分かりません。 下のような実行結果になるようだれかわかる人お願いします。 # include <stdio.h> int main(void) { int a[100],kai=0,sentaku; printf("整数を入力(CTRL+dで終了) >> "); while(1){ if(scanf("%d",&a{kai}) == EOF )break; kai=kai+1; printf("整数を入力(CTRL+dで終了) >> "); } printf("入力個数%d回\n",kai); return 0; } 実行結果 数値>>1 数値>>3 数値>>-1 数値>>-3 数値>>10 数値>>3 数値>> 入力回数:4回 1:昇順、2:降順>>1 NO.1:-3 NO.2:1 NO.3:3 NO.3:3 NO.5:10

専門家に質問してみよう