2017-03-04 18 views
1

私はsublime3テキストエディタを使用してCプログラムを書くことを学んでいますが、私はそれに対して2種類の崇高なビルドを持っています このビルドはCMDコンソールで実行を出力します。昇華型3コンソールで対話型プログラムを出力

> { 
"cmd": ["gcc", "$file_name", "-o", "${file_base_name}.exe", "&&", "start", "cmd", "/k", "$file_base_name"], 
"selector": "source.c", 
"working_dir": "${file_path}", 
"shell": true 
} 

他のビルドが崇高コンソール上でその実行

> { 
"cmd": ["gcc", "$file_name", "-o", "$file_base_name"], 
"selector": "source.c", 
"working_dir": "${file_path}", 


"variants": 
    [ 
     { 
      "name": "Run", 
      "cmd": ["gcc","${file}", "-o", "$file_base_name", "&&", "$file_path/$file_base_name"], 
      "shell":true 
     } 
    ] 
} 

を出力しながら、私は2番目のビルドを好むが、あなたは非対話型プログラムなど"Hello world"プログラムを実行するためにそれを使用し、それは私を与えるときにのみ動作しますエラーメッセージ私はこのような単純な対話型プログラムを実行するためにそれを使用します。

#include <stdio.h> 
#include <float.h> 


// variable declaration; 

int main() 
{ 
    float a,b,sum; 

    printf("Enter value of a\n"); 
    // for float u use "f" instead of d 
    scanf("%f", &a); 
    printf("Enter value of b\n"); 
    scanf("%f",&b); 
    sum=a+b; 
    printf("The sum of %f and %f = %f\n",a,b,sum); 

    return 0; 
} 

エラーメッセージ:

c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot open output file addition.exe: Permission denied collect2.exe: error: ld returned 1 exit status [Finished in 0.3s]

私は崇高なコンソールでインタラクティブなプログラムを実行できるかどうか、あるいは私の崇高なビルドについて何かする必要があるかどうかを知りたいと思います。

答えて

0

短いバージョン:いいえ、サブライム内でインタラクティブなプログラムを実行することはできません。

リンカからのエラーメッセージで、ファイルaddition.exeを作成/変更したいと言っていますが、オペレーティングシステム(この場合はwindows)からはできないことを伝えられています。

その根底的な理由は、Windowsでは現在使用中のファイルを削除/変更できないということです。この場合、現在実行中であることを意味します。

あなたの問題を解決するには、インタラクティブなプログラムを直接昇華させて実行することはできません。そうではなく、あなたはそのようなプログラムを実行できますが、コンソールの入力と実行しているプログラムとの間には接続がありません。

これは、プログラムを実行するときに対話することはできませんが、何かを入力するのを待って実行中です。その後、コードを変更してビルドして再度実行しようとすると、実行ファイルがまだ実行中であり、変更できないため、ここに表示されるエラーが発生します。この場合、ビルドをキャンセルして実行中のプログラムを停止することができます。

このようなプログラムを実行するには、Sublimeの外で実行して、対話できるようにするか、最初の例のようなビルドシステムを使用する必要があります。

関連する問題