Borland C++を利用しているのですが、簡単なプログラムが実行できません。
以下のようなプログラムをコンパイルして実行しようとしたのですが...
#include <stdio.h>
void main(void)
{
int i,j,k;

i=1;
j=2;
k=i+j;
printf( "k=%d,k);
}
Borland C++は、初めて使うのですが、C言語の勉強には使えないのでしょうか?
もし使えるなら、どのようにすればよいのでしょうか?

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

A 回答 (5件)

なるほど、


〔Borland〕〔C++ Builder〕だったのですね。
これ覚えておいたほうが今後のために良いと思いますけど、
〔Borland〕〔C++ Builder〕と
〔Borland C++〕は実は違います。

略したときに、
〔BCB〕となるのがBorland C++ Builder(という製品群)
〔BC++〕となるのがBorland C++(という製品群:すでにサポートされてない)
〔VC++〕となるのがVisual C++(という製品群:有料で世界的シェア)
そのた、〔GNU C++:無料で世界的シェア:PS2のゲーム開発やUNIX系など〕 〔WC++〕(ワトコム) 〔SC++〕(シマンテック) 〔MC++(マイクロソフト):すでにサポートされてない〕
クロスコンパイラとして、C++も含まれる 〔Code Warrior〕などなど、

まぁ、そういう話しはどうでもいいとして、
Borland C++ Builder はちょいと、コンソールアプリケーションが作りにくい。あまり勉強には向いていないかも。。。

まず、C言語の勉強をするばあい、当面は、〔オブジェクトインスペクタ〕と〔FORM1〕とあるフォームエディア、及び、コンポーネントパレットは不要。
(半年ぐらいは不要と思ったほうが良いです。この辺の機能は、本当は「C++(Cではなくて)」がばっちり記述できる人が使って初めて使いこなせます。)

必要なのはコードエディタのみです。
基本的に、私の知識は C++ Builder 1.0に基づいているので、いまでも全く同じかどうかはわからないですが、
〔プロジェクト〕として、〔コンソールアプリケーション〕を選びます。(ここ重要)
すると、多分以下のようなソースが作成されると思います。
//----------------------------
#include <vcl\condefs.h> ←これが BCB 独自の VCL ライブラリーのヘッダ
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#pragma hdrstop ← これも BCB 独自で勝手に挿入される。#pragma自体はC言語(プリプロセッサ)の仕様にある
//-----------------------------
USERES("Project1.res"); これも BCB 独自で勝手に挿入される リソース(フォームなど)関連の定義ファイルをインクルードしている。
//-----------------------------
int main(int argc, char **argv)
{
return 0:
}
//-----------------------------

で、このソースは要らないので、「全消去」して、testchiboさんのソースをはっつけてコンパイルすると、多分OKと思います。

もし、OKでないという場合は、追加して記述します。

//----------------------------
#include <vcl\condefs.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#pragma hdrstop
//-----------------------------
USERES("Project1.res");
//-----------------------------
void main(int argc, char **argv)
{
int i,j,k;

i=1;
j=2;
k=i+j;
printf( "k=%d,k);
}

なお、BCBは〔Win32〕としてしか動かないので、C言語の本にありがちな、MS-DOS独自の書き方などは、多々動かないことが予想されます。(具体的には、16bit専用のMS-DOS用の関数はBCBには実装されていないので、その辺は動かないです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
おかげさまで何とか実行することができました。しかし、今度は実行した後、Ms-Dosプロンプトみたいの(黒い窓)が出てきまして、すぐ消えてしまいます。
実行結果はどうやら合っているようなのですが、もうちょっと長い間表示させることはできないでしょうか?

お礼日時:2001/04/01 20:37

ちょっと邪道かもしれませんけど、



ヘッダに #include "stdlib.h"
を加えて、
プログラムの最後(ここではprintf("k=%d",k);の直後)

system("pause");
を使えば、windowsではプログラムを止めることが出来ます。

こんなことしてるの僕だけですね(笑)
    • good
    • 0
この回答へのお礼

回答ありがとうございました。プログラムの勉強にもなり、とても参考になりました。またよろしくお願いします。

お礼日時:2001/04/02 11:39

MS-DOS プロンプトから、実行すれば、問題なく実行されます。



(1)MS-DOS プロンプト内から、CD..とかを使って実行しても良いし、

(2)とりあえず、MS-DOSプロンプトを広げておいて、エキスプローラから、EXEプログラムをドラッグ&ドロップして、MS-DOSプロンプトの方をもういちどマウスでクリックして(ウィンドウを有効化)して、リターンキーを押しても良いです。

(3)プログラムの方を対応させる手段もあります。
#include <conio.h>
とインクルードしておき、
main() {
・・・
・・・
getche();

というように、conio.h と getche(); の組み合わせを書いておけば、何かキーを一つ押すまで制御が止まります。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。ついでにプログラムの勉強にもなり、とても参考になりました。またよろしくお願いします。

お礼日時:2001/04/02 11:37

Borland系を良く使う人間です。

(最近はGNUが多いけど…)

もうすこし症状を具体的に。
例えば、生成された実行ファイルを実行すると、どういうことになるの?
使用している「Borland C++ はコマンドラインのフリーコンパイラ?」それとも「IDEの有料環境?」

(1)何も実行されないの?
(2)一瞬黒い窓が開いたかと思ったら、一瞬にして閉じてしまうの?
(3)それとも、何も反応なし?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
最初から具体的にいいますと、まず、Borlanc C++ Builderというのを起動すると、[C++ Builder-project1]、[オブジェクトインスペクタ]、[Form1][C:\Program Files\Borland\CBuilder\\Projects\Unit1.cpp]という4つのダイアログが開きます。この4つ目のダイアログ[C:\Program Files\Borland\ CBuilder\Projects\Unit1.cpp]に、上記のプログラムを入力し、メニューからコンパイルし、実行しました。その後、同じダイアログにリンカエラーが2つでて終わりました。

お礼日時:2001/04/01 17:15

DOS窓かMS-DOSモードで作成したEXEを指定してもだめですか?



printf 分の文字列の終わりを示す " がありませんが、
これは単なるタイプミスですかね?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
printf 分の文字列の終わりを示す " は実際には入力してあります。
DOS窓かMS-DOSモードで作成したEXEを指定して実行する方法は、具体的には、どのようにやるのでしょうか?

お礼日時:2001/04/01 14:18

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

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

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

Q京都駅または東山七条近くで1人ランチ

土曜日に1人で京都に行きます。

11:00過ぎに京都駅に着いたあと、
市バスで東山七条へ移動し、
13:00からイベントに参加する予定です。

東山七条のあたり、または京都駅の近くで
女性1人でも入りやすい
(大体の場所に1人で行けるタイプですが(^^;)
美味しいランチのお店がありましたら、ぜひ教えてください。

予算は2,000~3,000円くらいまでが希望ですが
コストパフォーマンスが良ければもう少し出してもいいかな!?

もちろんお得なランチも大歓迎です!
和洋中ジャンルは問いません。

どうぞよろしくお願いします。

Aベストアンサー

私は京都で好きな美術館展があるたびに、必ず帰りに京都駅伊勢丹の豆腐料理店に行きます。(藤野のお豆腐が食べれる不二野です!)
おぼろ豆腐がついているセットがお勧めです。創作料理風で見た目も美しくとてもおいしいです。女性1人でも入りやすいですし、たまにしか来ない京都なので、京都らしい店でのランチがお気に入りです。
是非一度いらしてください。

参考URL:http://www.kyotofu.co.jp/shop/fujino_kyoto/index.html

Qfor(int i = 100, long n = 1; i > n/3i; i++)

for(int i = 100, long n = 1; i > n/3i; i++)
のように、初期設定で型の違う変数を宣言したいんだけど
C++ではこんなふうに2つ以上の型を宣言してはいけないんですか?

Aベストアンサー

,

コンマ演算子の原理です。
forの初期化文で "," で区切れるのは値を返す文だけです。
よってintステートメントもlongステートメントも値を返さないので、この文では使用できません。

というか、むしろ、intステートメントの第2引数としてlongが認識されてしまいます。
外で

int i; long n;

とし

for(i = 0, n = 0; hoge; hoge)

なら可能です。

Q京都駅周辺のおいしいランチ

明日京都へ訪れることになりました。

JR京都駅周辺でおいしいランチの
お店はご存知ですか?
予算は5000円までです。
安くても高くてもおいしいおすすめの
お店紹介いただけると
うれしいです。
よろしくお願いいたします。

Aベストアンサー

京都駅でしたら、
駅地下のPortaにある「リプトン」はいかがでしょう?
あの、紅茶で有名な「リプトン」です。

ここのオムライスは、ほんとおいしいです!
定番は2色ソースのオムライスなんですけど、
確か季節によって違ったものがあったのではないかと思います。

オムライスの他にも、ケーキやパフェも沢山種類があって、これもまたおいしいですよ~!(^^)!

値段はオムライスは800~900円くらいです。

ただし、ここは駅地下ということもあってか、
お昼時や午後3時ころには、いつも混んでいるので、
落ち着いて昼食を食べることは難しいと思います。

私はオムライスを食べて以来、「リプトン」のファンになってしまい、
この京都駅地下以外にも、
四条や三条にもお店があるので、行ってみたら
店によってオムライスやデザートの種類が、
ちょっとずつ違っているようです。
もし興味がありましたら、見てみてください。

参考URL:http://www.fukunaga-tf.com/lipton/

Qint i,j; \n i=0,j=5;

int i,j;
i=0;
j=5:
と書いてあるソースは普通ですが、
int i,j;
i=0,j=5:
と書いてあるソースもあります。
後者はC++の正しい書式ですか?

カンマ演算子というのは後者のカンマのことですか?

Aベストアンサー

 正しい書式です。

i=0,j=5;
 における、「,」をカンマ演算子といいます。2項の演算子です。カンマで区切られた演算を「左から順番に」実行し、最後の演算を結果として返します。
 したがって、例の文であれば、i=0を実行し、次にj=5を実行。そして、j=5の結果の5を結果として返します。
 ・・・
 が、本来的には、あまり、例のような使い方はしませんね。よく見られるのは、次のような場合です。

 for (i=0,j=0 ; i < 50 ; ++i,++j) {

 のような形でよく見られます。for文の各式は、一つの式でなければならないので、こんな書き方をするわけです。初期化と更新部が一つにまとまり、ループが読みやすくなるのが利点かな。

Q京都駅近辺でのおすすめランチ教えて下さい。(予約制)

こんにちは。宜しくお願いします。

こちらは京都人なんですけど、
お詳しい方いましたら、教えていただきたいです!
11月の祝日に遠方より友達を7人呼ぶのですが、
11月といいましたら、観光シーズンですよね。
ましてや、京都駅近辺(北でも南でも)でランチを
取りたいとなれば、並んでか、もしくは席がバラバラに
なってしまいそうで、心配です。
そこで、予約ができて、
できれば和食ではなく、洋食で、
(子供がけっこういるので、バイキングであったら喜ばれるかと
思うのですが・・・。)
一人当たり1000円~2000円の
(1000円におさまってくれれば嬉しいのですが・・・。)
おすすめのランチの場所などありましたら、
教えていただきたいです。

条件が厳しくて、すいません。
知っている方、ぜひともお願いいたします。
こちらはタクシーで移動するので、京都駅から
少しだけ離れていても結構です。

Aベストアンサー

京都新阪急ホテルのランチバイキングは大人2000円、子供1000円のようです。
http://www.hankyu-hotel.com/hotels/30kyotoshh/index2.html

京都駅周辺にはホテルがたくさんありますので、たいていどのホテルでもランチバイキングを行っているようです。新都ホテル、グランビア、センチュリー等いろいろ調べてみるのはいかがですか。

Qfor( ; ti >= 0; ti--, ci++)

C言語のループの表記のことです

for ( ; ti >= 0; ti- -, ci++)
この意味がわかりません
自分なりに解釈すると「;ti >= 0」から始まって「 ci++ 」を繰り返しながら「 ti- - 」になるまで繰り返す、というような感じです

「;ti >= 0」から始まるとはどういう意味でしょうか?
「 ti- - 」になるまでとは???

このソースが書かれているHPです
http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H12a2/pm11.html
52行目になります


わかる方がいらっしゃったら教えてください、お願いします

Aベストアンサー

for() の 「初期設定式」「継続条件式」「再設定式」の区切りは、; です。
ですからこの場合、
初期設定式:なにもない(特に初期設定不要)
継続条件式: ti >= 0
再設定式: ti--, ci++
です。

さらに、再設定式に出てくる表現は、「コンマ演算子」といいまして、おおざっぱに言えば、コンマで区切られた式を順番に実行という意味です。
(関数の引数に現れるコンマとは別の意味です)

初期設定式のない for() は、すでにあるところから処理を継続する場合によく使われます。たとえば、

s = 0;
for (i = 0; x[i] == 0; i++); // x[i] の先頭部分の0の要素を捨てて
for(; x[i] > 0; i++)
s += x[i]; // 「そのあと」の正の部分が継続する間足し込む
という場合、

また、再設定式は、

for(i = 0, j = 10; src[i] != 0; i++, j--)
dest[j] = src[i];
のように、二つ(以上)のものを変化させたい場合。
この例では、初期設定式も、コンマ演算子を使って、2つの初期化を行っています。

for() の 「初期設定式」「継続条件式」「再設定式」の区切りは、; です。
ですからこの場合、
初期設定式:なにもない(特に初期設定不要)
継続条件式: ti >= 0
再設定式: ti--, ci++
です。

さらに、再設定式に出てくる表現は、「コンマ演算子」といいまして、おおざっぱに言えば、コンマで区切られた式を順番に実行という意味です。
(関数の引数に現れるコンマとは別の意味です)

初期設定式のない for() は、すでにあるところから処理を継続する場合によく使われます。たとえば、

s = 0;
...続きを読む

Q京都駅周辺のランチ

 こんにちは。今月末に京都に行く予定です。ちょうど京都駅に到着するのが昼頃なので駅周辺でランチを食べたいのですが、お勧めの店はありませんか?こちらでも少し調べたのですが、出来たら和食のお店で加茂茄子がいただける所なら嬉しいです。予算は5,000円ぐらいまでを考えていますが、少しオーバーしても構いません。
 よろしくお願いします。

Aベストアンサー

下の方も書いてられますが、下手に京都駅ビルから出て探すよりも隣接する京都伊勢丹の11階にある「和久傳」がお勧めです。
非常に上品で京料理らしい料理が食べれます。
たまたま伊勢丹に入っているからではなく、そうじゃなくても普通にお勧めです。
予約ができるかどうかはわかりませんのでお尋ねください。

伊勢丹の地下はかなりの種類のお土産が置いてますので、有名どころを買われるのでしたら昼間の内に買っておいた方がいいですよ。
特に日持ちのする物でしたら帰りに買おうとしないで買える時に買っておいた方がいいです。

参考URL:http://r.tabelog.com/kyoto/A2601/A260101/26000863/

Qこの”void(*m_pViewMode)(BYTE,BYTE,WORD);”このソースコードの意味は?

今、みているソースコードで次のようなコードがありました。


void(*m_pViewMode)(BYTE,BYTE,WORD);

--------(中略)----------------------------

m_pViewMode(err == 0 ? stKey.key : 0x00,clear,stKey.time);


全く何をどうやっているのかよくわからないのですが、これはC言語ではどのようなことをやっているソースコードなのでしょうか?

ご存じの方いらっしゃいましたらご教授お願いいたします。

Aベストアンサー

> void (*m_pViewMode)(BYTE,BYTE,WORD);
これは「関数へのポインタ」型の変数を宣言している。
m_pViewModeはBYTEとBYTEとWORDを引数に取り、返り値のない関数を保持するポインタ変数になる。

> m_pViewMode(err == 0 ? stKey.key : 0x00,clear,stKey.time);
ここでは、m_pViewModeに代入された関数を実行している。
「err == 0 ? stKey.key : 0x00」の部分が最初の引数で、三項演算子?:を用いてerrが0のときはstKey.keyを、それ以外では0x00を最初の引数にする。

Q京都駅周辺で、ランチは?

来週、30代女性と、京都駅で開催中の、愛のシャガール展を見に行きます。ランチを近くで、と思っていますが、遠方から行くので、せっかくなので美味しいとこに行くことができればなあと思います。
電車や、バスで移動も考えてますがあまり遠くなくて、女性二人で楽しめるところ、ご存知でしたらおしえていただけたらとっても助かります!

Aベストアンサー

こんにちは。

遠方からということなので、京都らしい料理をオススメします。

伊勢丹の隣の、「ホテルグランヴィア」の中の「吉兆」はいかがでしょうか。

お昼だと限定料理があるようです。松花堂弁当も見ているだけでも大変楽しめ、オススメです。とても入りやすい雰囲気ですし、私は予約しないでたまに行きます。詳しくは下記サイトへ。

http://www.kitcho.com/kyoto/tenpo/granvia.htm

Qint main()、void main()、void main(void)、int main(void)

今日、大学でC言語の講義の時間、先生が、

#include <stdio.h>

void main(void){

}

と宣言してプログラムを書くと教えていました。
main関数には、
main()
void main()
void main( void )
int main()
int main( void )

と、人によりいくつかの描き方があったりします。
どれが本当は正しいのでしょうか?
void mainはすべきではないとなんかの本で読んだのですが・・。

Aベストアンサー

通称C89という以前の言語規格(現行コンパイラの多くが準拠)では、下記のいずれかが正しい。
int main(int argc, char *argv[])
int main(void)

但し、最新のC言語規格(通称C99)では、
<ISO/IEC9899:1999>
or in some other implementation-defined manner.
</ISO/IEC9899:1999>
となっているので、処理系が戻り値のvoidを認めていればvoidも可。
# 組込み系などで戻り値を使わない環境もあるためでしょうか。

なので、コンパイラのマニュアルで戻り値のvoidにしていい/しろと書いてない限り、
voidは言語仕様的には正しくない。(でも動くものもある)


人気Q&Aランキング

おすすめ情報