• ベストアンサー

c++における文字出力

 c++初学者です(cは少しだけ知っています).  私が持っているc++の入門書には,「coutを使って文字を出力できる」旨書かれています.そこで,その本に載っているcoutを使ったサンプル(*1)を書いて実行してみたのですが,下のようなエラーが出ます. > /var/tmp/ccT163831.o: In function `main': > /var/tmp/ccT163831.o(.text+0x9): undefined reference to `cout' > /var/tmp/ccT163831.o(.text+0xe): undefined reference to `ostream::operator<<(char const *)'  本で使われているコンパイラはBorlandのもので,私が使っているものはgccです.  coutを使って出力する方法はBorland特有の(あるいはその他いくつかのコンパイラだけで使われている)方法で,より一般的にc++を勉強したい場合は他の参考書を使うべきなのでしょうか.それとも,私の使っているgcc(ver 2.7.2.3)が古すぎる,あるいは何らかの設定が間違っていて使えない,ということなのでしょうか.  どなたかご教授ください. (*1) #include <iostream.h> void main(void) { cout << "this is a test."; }

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

  • ベストアンサー
  • nk2
  • ベストアンサー率23% (6/26)
回答No.5

もしかしてコマンドを gcc ファイル名 と入力しているのかい? gccはCのコンパイラーだから C++のライブラリであるcoutは読み込まないよ。 C++をGCCでコンパイルしたいならg++を使う。 g++ ファイル名 としてみて。

その他の回答 (4)

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.4

gcc3.3.3だと、 c++ a.cpp (c++.exeがありました) gcc -X c++ a.cpp (Xは大文字) -X c++ で、C++モードを指定するといいみたいです

回答No.3

> /var/tmp/ccT163831.o(.text+0x9): undefined reference to `cout' > /var/tmp/ccT163831.o(.text+0xe): undefined reference to `ostream::operator<<(char const *)' 単にライブラリをリンクしてないだけじゃない? libstdc++.a とか。 # コンパイラのマニュアルを参照してください。 # てゆっか、v2.7はちと旧い

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

<iostream.h> を <iostream> にしてみるとか std::cout にしてもいいと思います。 gcc だったらvoid main だと文句いわれないですか (ver 2.7 は今使ってないので自信なし)

magicoflove
質問者

補足

 .h のまま cout を std::cout にしてコンパイルすると次のエラーが出ます(下のもので全部. void main のままなんですが…). > In function `int main(...)': > 5: `std' undeclared (first use this function) > 5: (Each undeclared identifier is reported only once > 5: for each function it appears in.) > 5: parse error before `::'

回答No.1

C++の書式では #include <iostream> using namespace std; となります。 これで試してみてください。 (古い書式:質問者さんの書き方:でも通ると思ったが…

magicoflove
質問者

補足

 .h を消すと iostream: No such file or directory と出ます.  .h を戻して using ... の行だけ足してコンパイルすると質問中に書いたエラーとあわせて次の行が出ます. 2: warning: namespaces are mostly broken in this version of g++

関連するQ&A