2011-03-23 84 views
1

我想用vector和fstream來讀取和存儲C文件中的行。我使用Microsoft visual studio 2005.問題是,當我編譯程序時,它說找不到在include中指定的文件如果我使用.h。如果我不使用.h,那麼它會在我定義vector和ifstream作爲未聲明標識符的主體中顯示錯誤。fstream vector C

謝謝。

+4

'vector'和'ifstream'不是'C'的一部分,它是'C++'的一部分。你確定你的構建環境是正確的嗎? – Asha 2011-03-23 05:28:02

+0

你能發佈有問題的代碼嗎? – templatetypedef 2011-03-23 05:29:05

回答

4

您不能在C中使用C++類vectorfstream,C編譯器無法編譯它們。因此,您必須將文件更改爲.cpp(並將其編譯爲C++),或使用C語言及其文件處理方法(fopen, fprint ...)和數組而不是向量。

包括

#include <stdio.h> 

代替<iostream>

1

包括如果我使用的.h。如果我DONOT使用.H ..

我猜你是包括像 -

#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 - 用你的語句 - '「如果我不使用.h,那麼它會在主體中顯示錯誤」',我非常肯定編譯器能夠找到相應的頭文件。因此,您正在使用Visual Studio中默認的C++編譯器。如果它是一個'C'編譯器,它將明確地保留在'#include '聲明中,但不包含在函數體中。 http://ideone.com/9p1Pk – Mahesh 2011-03-23 05:52:28