今だけ人気マンガ100円レンタル特集♪

CPad for LSI C-86というC言語のフリーソフトのコンパイラーを使用しています。OSはWindows Vistaです。

#include <stdio.h>

int main()
{

printf("Test Program")

}

という単純なプログラムを実行すると、「名前を付けて保存」になってしまい、適当にファイル名を付けて保存すると、
「コンパイルに失敗しました。ファイル”適当なファイル名”は存在しません。」
というコメントが表記されてしまって、プログラムの実行ができません。どなたか原因がわかる方、教えてください。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

>ファイル"C:Users\owner\Desktop\フリーソフト\Test.exe"は存在しません」



フォルダ名「フリーソフト」が悪さをしているのかもしれません。
ファイルシステムそのものは、そういうロングファイルネームに対応していても、
コンパイラが認識できていないようです。

英数字8文字以内のフォルダにソースファイルを保存するように
変更してみてはいかがでしょうか?
    • good
    • 1
この回答へのお礼

ご指摘の通りフリーソフトをfreesoftに変更したところ正常に動作しました。
丁寧な指導ありがとうございます。

お礼日時:2009/06/07 11:01

とりあえず、ちょっとだけ用語を説明しておきます。



エディタ:メモ帳(notepad)などのテキストエディタのこと。テキストファイルを作る。
コンパイラ:プログラムの書かれたテキストファイルを読み込んで、コンピュータが実行する、実行ファイル(*.exe)を作る。

CPadはエディタです。LSI C86 3.30試食版 がコンパイラです。

CPadはプログラム開発用のエディタです。コンパイラにテキストファイルを渡したり、コンパイル時に問題が起きると、エラーメッセージを取得してソースの位置を示したりできます。
コンパイルするとき、コンパイラ自体にはファイルを渡す必要がありますので、エディタは一度ファイルを保存する必要があります。これが最初の保存となる場合(新規ファイルの場合)、保存先とファイル名を求められるでしょう(つまり「名前をつけて保存」)。
さて、CPadのメッセージはウィンドウ下部のメッセージ領域に表示されたと思いますが、他にメッセージは出ていないでしょうか?
おそらく、

~何らかのメッセージ~
コンパイルに失敗しました
ファイル"C:Users\owner\Desktop\フリーソフト\Test.exe"は存在しません

という感じになっていると思います。
見つからないファイル名はexe(実行ファイル)であること、「コンパイルに失敗しました」とは別の行にあるなら、別のメッセージであること、そしてこの手のメッセージは、通常はより細かいものが先に表示されることから、最後のファイルがないというメッセージはコンパイラのメッセージではなく、エディタのメッセージと考えられます。
試しに、「コンパイル」でコンパイルだけしてはどうでしょう。
最後のファイルが存在しませんというメッセージが消えるのではないでしょうか。

なお、コンパイルに失敗する原因は「コンパイルに失敗しました」よりも先に表示されているメッセージで示されます。
一度のコンパイルのメッセージ全体の一般的な並びは、

コンパイラの名称やバージョン
コンパイルの対象ファイル名
警告メッセージ/エラーメッセージ
コンパイルの結果

となります。

この回答への補足

「コンパイルに失敗しました
ファイル"C:Users\owner\Desktop\フリーソフト\Test.exe"は存在しません。」以外のエラーメッセージは出てきませんでした。、実行後、ソースファイルとテキストファイルが作られていました。
コンパイルだけをおこなった場合、メッセージの欄にcannnot excute…LCC.EXEといった記述がありました。
フリーソフトをfreesoftに変えて実行したところ、前述の二つのファイルとEXEの実行ファイルがあり正常に動作していました。
要するに、一度書いたプログラムを保存し、コンパイラに読み込ませて実行させているということなのでしょうか。
だとすると、テキストファイルとソースファイルの二つを作る意味というのはどういうことなのでしょうか?
質問とは関係ありませんが、教えていただけるとありがたいです。

補足日時:2009/06/07 21:57
    • good
    • 0

>エラー内容が「見つかりません。



コンパイル時のエラーメッセージの全文を、
コピー&ペーストで正確に掲載してください。

この回答への補足

エラー内容は
「コンパイルに失敗しました
 ファイル"C:Users\owner\Desktop\フリーソフト\Test.exe"は存在し ません」
です。コピーはできないようになっていましたが忠実にエラー内容をうつしました。
 ちなみに保存ファイル名はTest.cにしました。

補足日時:2009/06/06 21:19
    • good
    • 0

>実行というのは「コンパイル&実行」というものをクリックしたということなのですが。



このときに、最初の投稿にあったとおり「名前を付けて保存」になったのですか?
そのとき、

>適当にファイル名を付けて保存すると、

どういう風に適当だったのでしょうか?

LSI C試食版は16ビット時代のひじょうに古いコンパイラで、
今では普通に使っているロングファイルネームに対応していません。
「8文字以内の英数字.c」という形式でソースファイルを保存する必要があります。

この回答への補足

おっしゃる通りで「名前を付けて保存」になりました。
ファイル名はabc.cとかtest.cとかにしました。
エラー内容が「見つかりません。」ということは、保存する場所が決まっているのでしょうか?

補足日時:2009/06/06 20:55
    • good
    • 0

>CPad for LSI C-86というC言語のフリーソフトのコンパイラーを使用しています。



CPad for LSI C-86 は、コンパイラではありません。
LSI C-86 というコンパイラを使ったプログラム開発を支援するためのソフトウェアです。

CPadの「実行」というのは、おそらく、
 ・LSI C-86 によるコンパイル、実行ファイルの作成
 ・前項で作成した実行ファイルの実行
という2段階のことを称しているのではないかと思います。

ここで、質問時に提示されたソースを見ますと、

>printf("Test Program")

最後にセミコロンがありません。
このため、2段階のうちの第1段階である、コンパイルに失敗しているのではないでしょうか。

この回答への補足

早速の回答ありがとうございます。セミコロンを入力したのですが同様の結果になりました。
詳細を説明しますと、CPad for LSI C-86のファイルを展開して実行しますと「コンパイラのパス」が指定されます。なので、「LSI C86 3.30試食版」というフリーソフトのBINファイルに入っているLCC.EXEというものを指定しました。
私は間違えていたようで、コンパイラは「LSI C86 3.30試食版」だと思います。
そうすると、プログラムが書き込める画面が開かれて先ほどのプログラムを打ち込み、実行しました。
実行というのは「コンパイル&実行」というものをクリックしたということなのですが。よろしくお願いします。

補足日時:2009/06/06 20:23
    • good
    • 0

>という単純なプログラムを実行すると



このとき、どういう手順を踏みましたか?
メニューのこれを選択してからこれを押した、というように、
具体的に教えてください。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qcpadでプログラムが実行できない

int main(void) {return 0;}
というプログラムをcpadで打って実行ってところを押すと

D:d-drive\tool\office\bcpad231\backup>
D:d-drive\tool\office\bcpad231\backup>_

とでます(_のところは点滅している)
D:d-drive\tool\office\bcpad231 はbcpadがおいてあるパスです
どんなプログラムでも上記のようになります
一通り設定はしたのですがどなたか助けてください

Aベストアンサー

多分、

コマンド [     ] [実行]

の実行ボタンを押してるんだと思いますが、
このボタンは、[     ] に入れたものを コマンドプロンプトで「実行」するためのものです。C言語のプログラムを実行するものではありません ( [     ] に bcc32 (ソースファイル名) とすればコンパイルできるかもしれません) 。
メニュー -> 表示 -> ツールバー -> 実行 にチェックがついているか確認しましょう。
付いていれば、ツールバーに右側を向いた青色の矢印があります。
これが、C言語のプログラムを実行するためのものです。
その右を向いた青色ボタンの左側にある(ボタンの上にカーソルをのせると make or コンパイル (Ctrl + F) と表示される) のが、C言語のプログラムをコンパイルやリンクをするためのボタンです。
まず、青色のボタンの左側にあるボタンでコンパイルし、実行ファイルを作ります。
エラーがなくなるまで、実行ファイルは作られません。
エラーがでなくなれば、右向き青ボタンで作成したプログラムを実行します。

多分、

コマンド [     ] [実行]

の実行ボタンを押してるんだと思いますが、
このボタンは、[     ] に入れたものを コマンドプロンプトで「実行」するためのものです。C言語のプログラムを実行するものではありません ( [     ] に bcc32 (ソースファイル名) とすればコンパイルできるかもしれません) 。
メニュー -> 表示 -> ツールバー -> 実行 にチェックがついているか確認しましょう。
付いていれば、ツールバーに右側を向いた青色の矢印があります。
これが、C言語のプログラム...続きを読む

QCPad for Borland C++Compilerのダウンロード

CPad for Borland C++Compilerのダウンロードは
どこですればよいでしょうか?
もう、かなり前のソフトなので、
全然見つかりません。
よろしくお願いします。

Aベストアンサー

>全然見つかりません。

CPad で検索すればすぐに見つかりますよ。

「CPad(BCPad)」と「Borland C++Compiler」は別物ですよ。

CPad
http://cpad.michikusa.jp/

http://hp.vector.co.jp/authors/VA017148/pages/cpad.html

C++Builderのトライアル版
http://www.enri.go.jp/~fks442/K_MUSEN/bcc.htm
http://www.codegear.com/jp/downloads/free/cppbuilder

Qbcpadでコンパイルできない

この前学校でbcpadをつかった授業があったので家でやってみようと思い、
Borland C++ Compiler 5.5 とCPad for Borland C++Compiler をインストールして設定もしました。

そしてbcpadに

#include<stdio.h>
int main(void){

printf("Hello World");

return 0;

}

と入力し、保存してコンパイルしてみました。
しかし、以下のようなエラーメッセージが出ました。

「コンパイルに失敗しました
ファイル"C:Users\aaaa\downloads\Documents\C\hello.exe" は存在しません」

また下のメッセージのところには

hello.cpp:
Error E2379 hello.cpp 7: Statement missing ; in function main()
*** 1 errors in Compile ***

と出ていました。
何がダメなのか全くわかりません。
OSはwindows7です。
どなたか詳しい方ご教授をお願いします。

この前学校でbcpadをつかった授業があったので家でやってみようと思い、
Borland C++ Compiler 5.5 とCPad for Borland C++Compiler をインストールして設定もしました。

そしてbcpadに

#include<stdio.h>
int main(void){

printf("Hello World");

return 0;

}

と入力し、保存してコンパイルしてみました。
しかし、以下のようなエラーメッセージが出ました。

「コンパイルに失敗しました
ファイル"C:Users\aaaa\downloads\Documents\C\hello.exe" は存在しません」

また下のメッセージのところに...続きを読む

Aベストアンサー

取り敢えず、

×:int main(void){
○:int main(void){

全角の"{"は使用しない。

Qコンパイル失敗と表示されましたがどこが間違っているでしょうか?

インターネット上のC言語入門講座で例題どうりにコンパイラーに入力したつもりなのですが[コンパイルに失敗しました。]と表示されてしまいどこが間違っているのか分かりません。詳しい方教えてください。

#include<stdio.h>
void main()
{
int count;
for (count = 0; count < 5; count++) {
printf("countは今%dです\n", count);
}
if(count == 4){
printf("正解は4でした\n");
}else if(count == 5) {
printf("正解は5でした\n");
}else {
printf("4でも5でもありませんでした\n");
}
}

Aベストアンサー

>C\Documents and Setting\Owner\My Documents\C\web Ckouza3shou

コンパイルに失敗した理由はパス名、ファイル名が「C Pad for LSI-86」で扱えない名前だからです。

フォルダ名、ファイル名は8.3形式しか使えません。

上とは別ですが、Cのソースファイルの拡張子は「.c」したほうが良いでしょう。

Qヘッダファイルとは?

ヘッダファイルを作って、そこに構造体を送りたいのですが、
「引数宣言は 'data' で始められない」というエラーがヘッダファイル側で起きてしまいます。

main()で作ったからいけないのでしょうか?
分かる方教えていただけませんか?

#include<stdio.h>
#include "Max_Score.h"

/*構造体の宣言*/
typedef struct data{
・・・・・;
}DATA;

void main(){
DATA data[50];
・・・・・・・・;
Max_Score(data);
}

/*Max_Score()側*/
void Max_Score(data *p){
・・・・・;
}

Aベストアンサー

>「"C:\borland\成績管理システム\分割コンパイルサンプル\System-menu.exe" のタイムスタンプは変化していません」

ソースを修正してもコンパイル・リンクしてくれないという意味でしょうか?
ソースを修正していない場合は、makefileはファイルの再作成を抑止しますので正常な動作です。
もしソースを修正してもコンパイルされない場合は、makefileの記述を間違っています。

例えば、
SYSTEM-MENU.obj : SYSTEM-MENU.c SYSTEM-MENU.h
bcc32 -c SYSTEM-MENU.c
だった場合に、「SYSTEM-MENU.c SYSTEM-MENU.h」だけではなく自分で作成してincludeしているヘッダを全て記述しないと行けません。
正しくは、
SYSTEM-MENU.obj : SYSTEM-MENU.c SYSTEM-MENU.h Max_Score.h
bcc32 -c SYSTEM-MENU.c
と書く必要があります。
こういう問題だと推測されますがどうでしょう?

>「"C:\borland\成績管理システム\分割コンパイルサンプル\System-menu.exe" のタイムスタンプは変化していません」

ソースを修正してもコンパイル・リンクしてくれないという意味でしょうか?
ソースを修正していない場合は、makefileはファイルの再作成を抑止しますので正常な動作です。
もしソースを修正してもコンパイルされない場合は、makefileの記述を間違っています。

例えば、
SYSTEM-MENU.obj : SYSTEM-MENU.c SYSTEM-MENU.h
bcc32 -c SYSTEM-MENU.c
だった場合に、「SYSTEM-MENU.c SYSTEM-...続きを読む

Q【エラー】Cpadで初めてコンパイル

Cpad for Borlandで以下のようなソースを書きコンパイルをしましたが、失敗し、行き詰っております。

当方、初プログラミングに挑戦しております。

<環境>
OS:XP(HOME)
コンパイラ:Borland C++ Compiler
エディタ:Cpad for Borland

<動作状況>
ソース:
#include <stdio.h>

int main ( void )
{
printf(mori);
return 0;
}

エラー情報:
「コンパイルに失敗しました。
ファイル"ファイル"D:\source\test1.exe"は存在しません」

参考情報(参考にならないかもしれませんが…):
・コンパイラはDドライブにインストールしております。
・コンパイラのパスはD:\borland\bcc55\Bin\bcc32.exeです。

以上、よろしくお願いいたします。

Aベストアンサー

> printf(mori);

mori ってなんですか?
示されたコードに誤りがないなら、あきらかにコンパイルエラー。
なので実行できません。

Qコマンドプロンプトがすぐ消える

Cpad for Borland C++Compilerという統合開発環境を使ってC/C++を書いています。
OSがvistaで32ビットのパソコンでは普通にできたのですが、OSが7で64ビットの新しいパソコンでは実行してもすぐにコマンドプロンプトが閉じてしまいます。

なにが原因なのでしょうか?OSでしょうか、それともbit数でしょうか。

また、すぐ消えないようにするためにはどのようにすればいいのですか。いろいろな回答を見たのですが、どれも初心者の私には言葉足らずで理解できませんでした。詳しく教えていただけるとありがたいです。よろしくお願いします。

Aベストアンサー

回答したついでになりますが、こういう場合はgetch関数を使うのがC言語の慣習でもあります。
getchでコンパイルが通らなければ_getch(最初にアンダーバー)です。
どっちで通るかはコンパイラが実装しているC規格によって変わります。

---------------------------------
#include <stdio.h> /* printf */
#include <conio.h> /* getch */

int main(void)
{
printf("before getch()\n");
getch(); /* ここで一旦プロンプトが止まる。Enterキーで再始動。 */
printf("after getch()\n");
getch(); /* ここでまたプロンプトが止まる。 */
return 0;
}
---------------------------------

QCPadの設定

Cpadの初期設定でコンパイルパスの指定がありますが、何を入力すれば良いですか??

Aベストアンサー

 JDKやJava2 SDKを先にインストールしていると思う。していない場合は http://java.sun.com(英語)から Java2 SDK 1.4.2_06などを探してダウンロードしてインストールしよう。ここではc:\usr\local\javaにインストールしたと仮定して話を進める。

 具体的に入力する内容は
「C:\usr\local\java\bin\javac.exe」
だ。
 きときと氏作cpadシリーズは、コンパイルや実行は別のソフトウェアに任せて、快適にソース編集ができるような環境を提供するソフトなので、Javaの開発を行うには別途Javaを開発するソフトが必要なのだ。JavaのcpadではそれがSun Microsystemsが提供するJava2 SDKという訳だな。

Qfloat型とdouble型の変数の違いを教えてほしいです

float型とdouble型の変数の違いを教えてほしいです
2Dゲームを作っててdoubleの変数を使ってたんですが使ってはだめだと先輩に言われたんです。
理由を聞いたら、先生が「doubleは使わないほうがいい」と言われたらしくてちゃんとした理由がわかりませんでした。
それを知って何をするということではないんですが、気になって調べても出てこなかったので質問させてください。
まだゲーム作りを始めたばっかりでぜんぜん詳しくないですが教えてくれたら助かります。

Aベストアンサー

doubleとfloatでは、精度が違い、そのためメモリに占める大きさも違います。
また、一般的には、桁が多いとその分計算時間がかかります。
ですから、精度が必要ない場面では、floatを使う、というのも一つの考えかたです。

ですが、実際には「一概に言えない、処理系依存」です。

以前は全てCPUで計算していたので、精度=計算量でした。
しかし、最近では浮動小数点演算専用の回路が付いているケースが多く、計算時間は同じだったり、doubleに変換が必要でその分floatの方が遅かったり、floatでの演算はより高速にできたり、と様々です。
32bitCPUでは、32bitのfloatの方が扱いやすいでしょうが、64bitCPUでは64bitのdoubleの方が扱いやすいかもしれません。
Cのmath.hで使える標準関数はdouble型のものがほとんどです。三角関数は2Dのゲームでも使う機会が多いのではないでしょうか。sinもcosもdouble型です。内部演算は当然doubleですので、変数にfloatを使ったからと早くはならず、むしろfloat型の変数に入れるときに暗黙の型変換が発生する分遅くなる可能性もあります。

そういった背景を考え検討した結果、floatを使う方がよい、と判断したのならいいのですが、「先生に言われた」では理由になりません。
聞けるのなら、その先生に理由を聞いてください。真意がわからないうちは、鵜呑みしないことです。

doubleとfloatでは、精度が違い、そのためメモリに占める大きさも違います。
また、一般的には、桁が多いとその分計算時間がかかります。
ですから、精度が必要ない場面では、floatを使う、というのも一つの考えかたです。

ですが、実際には「一概に言えない、処理系依存」です。

以前は全てCPUで計算していたので、精度=計算量でした。
しかし、最近では浮動小数点演算専用の回路が付いているケースが多く、計算時間は同じだったり、doubleに変換が必要でその分floatの方が遅かったり、floatでの演算はより高速...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング