2011-03-23 6 views
1

私はベクトルを使用して、読んで、私は、問題は、私はプログラムをコンパイルするとき、それは見つけることができなかったと言うことであるマイクロソフトのVisual Studio 2005を使用していますC.にファイルからのラインを格納するFSTREAMしようとしています.hを使用する場合、includeに指定されたファイル。私は.hの使用scroll down toパソコンへ転送すれば、それは私が宣言されていない識別子としてのベクトルとはifstreamを定義体にエラーが表示されるでしょう。fstreamのベクトルC

ありがとうございます。

+4

'vector'と' ifstream'は 'C'の一部ではなく、' C++'の一部です。あなたのビルド環境は正しいですか? – Asha

+0

問題のあるコードを投稿できますか? – templatetypedef

答えて

4

あなたはCでのC++のクラスvectorまたはfstream、Cコンパイラはそれらをコンパイルすることはできません使用することはできません。だから、どちらかの代わりにベクトルの.cppファイル(およびC++としてコンパイル)するために、あなたのファイルを変更する必要がある、またはファイル処理のためのC言語とそのメソッドを使用します(fopen, fprint ...)と配列。私は.hの使用している場合

#include <stdio.h> 

代わり<iostream>

1

を含めるには含まれています。私は

を使用した.h ... scroll down toパソコンへ転送場合、私はあなたのよう含めていることを推測する -

#include <vector.h> 
#include <ifstream.h> 

.h廃止されており、C++のヘッダーのために使用すべきではありません。したがって、-

#include <vector> 
#include <ifstream> 

に変更します。これらはどちらもstd名前空間で定義されています。したがって、usingディレクティブを使用してインポートする必要があります。

using namespace std; // Probably missing this and is the cause for the errors 
         // vector and ifstream as undeclared identifiers. 
+0

@user - 自分のWithステートメント - '、私はコンパイラが対応するヘッダを見つけることができることをかなり確信して'「私は.hの使用scroll down toパソコンへ転送すれば、それは体内のエラーを示すだろう」。したがって、Visual StudioではデフォルトでC++コンパイラを使用しています。それは 'C'コンパイラの場合、それはよっぽど 'の#include 'ステートメントで救済ではなく、関数の本体でいるだろう。 http://ideone.com/9p1Pk – Mahesh

関連する問題