#include<br>と#include<br>および#inclue<br>および#include<br>の違い
C++では#includeと#includeおよび#inclueおよび#includeがよく使われていますが、その違いはあまり明確ではありません.http://www.cnblogs.com/charley_yang/archive/2010/12/08/1900715.html
1.機能性の観点から、は一連のテンプレート化されたI/Oクラスを含み、逆には文字ストリームのみをサポートする.さらに、入出力ストリームのC++標準仕様インタフェースは、いくつかの微妙な詳細で改善されているため、およびはインタフェースおよび実行において異なる.最後に,の各構成はSTL(Standard Template Library,標準テンプレートライブラリ)として宣言されるが,の各構成はグローバル型に宣言される. これらの実質的な違いのため、1つのプログラムでこの2つのライブラリを混同して使用することはできません.新しいコードでは一般的にが使用されますが、過去に作成されたコードを処理している場合は、継承のためにを引き続き使用して世代コードの一貫性を維持することができます.
/////////////////////////////////は、プログラムの開始時にusing namespace stdという言葉を使用する必要があることを示します.これは、c++規格に従うがc++規格に従っていない/////////////////////////////////////////////////////////////////////////////////////////////////////新しいstrngクラスに対応するstdをインストールしたC++ヘッダファイル;は古いCヘッダファイルに対応するstdバージョンです.
(標準化委員会は、人の心を引き締めるため、より多くの人が入会するように、stdをパッケージした標準ライブラリのために新しいヘッダファイル名を構築することにした.既存のC++ヘッダファイル名の.hを削除したため、やなど多くの双子が現れた.Cヘッダファイルについては、同様の方法で名前ごとにCを追加するので、Cのになりました.)
#includeおよび#include 前はc++標準ではなく、後はc++標準で
また、普段私たちが使っている2つのケースは、出力と入力ストリームがある場合に注意してください.
#includeに変更して、using namespace stdを追加するか、coutをstd::cout,endをstd::endlなどに変更します.
#includec++標準化以前の使用方法.#includeusing namespace std;これは.c++標準化後に推奨使用方法を同時に提示しなければならない.主にnamespaceの導入による.
#include<..>(include<...>)は、標準ライブラリからヘッダファイルを直接抽出します.
2.なぜ次のコードが
次のようになります.
ここのstringコンパイラは知っていますが、strcmpは知りませんか?
---------------------------------------------------------------
一般的にC++の古い「.h」拡張子付きライブラリファイル、例えばiostream.hは、新しい標準後の標準ライブラリに「.h」拡張子を持たない対応があり、違いは後者の多くの改善のほか、後者の東東が「std」名前空間に詰め込まれていることだ.
しかし、stringだけは特別だ.
問題はC++がCの標準ライブラリと互換性を持つことであり、Cの標準ライブラリにはたまたま「string.h」という名前のヘッダファイルがあり、ビル主が言及したstrcmpのようなよく使われるC文字列処理関数が含まれている.
このヘッダファイルはC++のstringクラスとは少しも関係がないので、
はの「アップグレードバージョン」ではなく、関係のない2つのヘッダファイルです.
所有者の目的を達成するには、次のようにします.
ここではC標準ライブラリのに対応するがstd名前空間が包まれたバージョンである
1.機能性の観点から、
/////////////////////////////////
(標準化委員会は、人の心を引き締めるため、より多くの人が入会するように、stdをパッケージした標準ライブラリのために新しいヘッダファイル名を構築することにした.既存のC++ヘッダファイル名の.hを削除したため、
#include
また、普段私たちが使っている2つのケースは、出力と入力ストリームがある場合に注意してください.
#include
#include
#include<..>(include<...>)は、標準ライブラリからヘッダファイルを直接抽出します.
2.なぜ次のコードが
#include <string.h>
void main()
{
string aaa= "abcsd d";
printf("looking for abc from abcdecd %s
",
(strcmp(aaa,"abc")) ? "Found" : "Not Found");
}
stringタイプが定義されていないと正しく実行できません次のようになります.
#include <string>
using namespace std;
void main()
{
string aaa= "abcsd d";
printf("looking for abc from abcdecd %s
",
(strcmp(aaa,"abc")) ? "Found" : "Not Found");
}
ここのstringコンパイラは知っていますが、strcmpは知りませんか?
---------------------------------------------------------------
一般的にC++の古い「.h」拡張子付きライブラリファイル、例えばiostream.hは、新しい標準後の標準ライブラリに「.h」拡張子を持たない対応があり、違いは後者の多くの改善のほか、後者の東東が「std」名前空間に詰め込まれていることだ.
しかし、stringだけは特別だ.
問題はC++がCの標準ライブラリと互換性を持つことであり、Cの標準ライブラリにはたまたま「string.h」という名前のヘッダファイルがあり、ビル主が言及したstrcmpのようなよく使われるC文字列処理関数が含まれている.
このヘッダファイルはC++のstringクラスとは少しも関係がないので、
所有者の目的を達成するには、次のようにします.
#include <string.h>
#include <string>
using namespace std;
#include <cstring>
#include <string>
ここで