8

ほぼ 10 年ぶりに C++ の世界に戻ってきました。GCC をインストールし、Windows 7 ボックスに予備プログラムを作成しました。次の質問があります。

と言うと#include <iostream.h>、ファイルが見つからないというエラーが表示されます。私はそれを機能させるために言わなければ#include <iostream>なりません。さらに、GCC がインストールされているフォルダーに移動すると、どちらの名前の聞き取りファイルも見つかりませんでした。iostream はどこから取得されますか?

4

6 に答える 6

7

<iostream> is the standard C++ header you need to include. Where it is depends on your platform. On mine, it is in

/usr/include/c++/4.4.3/iostream

You can find out details of g++ configuration with

g++ --verbose

This prints out, among other things,

--with-gxx-include-dir=/usr/include/c++/4.4

于 2012-12-11T12:21:41.343 に答える
5

.hヘッダー ( などiostream.h) は廃止され、「モダン」スタイルのヘッダー ( )が採用されましたiostream。これにより、実装では、ディスク上に物理的に配置されたファイルとしてヘッダーを提供する必要がなくなります。適切な実装を自由に選択できます。

たとえば、<math.h>はこの名前のファイルを提供する実装を必要としますが、 のみを指定する<cmath>と、実装は物理ファイルを必要とせずに自由に数学ユーティリティを提供できます。

さらに、.hヘッダーは宣言をグローバル名前空間に置きますが、「非 .h」ヘッダーは宣言をstd名前空間に置きます。その結果、新しいヘッダーが名前の競合を引き起こす可能性はほとんどありません。

編集Basile Starynkevitchがコメントで指摘したように、この概念は C++ だけに限定されませんが、C 標準でもサポートされています。

于 2012-12-11T12:22:50.667 に答える
3

There is no iostream.h header in C++, these were around in pre-standard days. No C++ standard library header ends in .h.

If your compiler installation is sane you should never have to add the directory containing the standard library headers to your include directories -- the compiler already knows best where to look.

于 2012-12-11T12:21:18.270 に答える
2

私の Windows ボックスでは、iostream(現在は なし.h) は にあり:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\includeます。(日食エラーのため検索していたところ、Googleと私のHDを検索しました。)

于 2015-03-21T12:49:19.493 に答える
1

実際には、GCC のソース コードで見つけることができます:拡張子
libstdc++-v3/include/std/iostream
なし の 例.h
GCC-4.7

于 2012-12-11T12:21:58.143 に答える
1

-H GCC のプリプロセッサ オプションを使用して、含まれている各ヘッダーを表示します。

.h他の人が言ったように、標準の C++ ヘッダーはもはやorで終わらない.hh

(私の提案は.hh、独自の C++ ヘッダー ファイルと.ccC++ ソース ファイルに使用することです。また、GCC 4.7 を使用し、特に初期化されたローカルの「型推論」のキーワードを使用して、 C++2011標準に対してコーディングすることもお勧めします。auto変数)

于 2012-12-11T12:23:49.513 に答える