2009-05-05 17 views
0

Ich habe ein Programm, Haupt genannt:"seekg Kennung nicht gefunden"

#include<iostream> 
#include<fstream> 
using namespace std; 
#include"other.h" 
int main() 
{ 
//do stuff 
} 

und dann other.h:

char* load_data(int begin_point,int num_characters) 
{ 
    seekg(begin_point); 
    char* return_val=new char[num_characters+1]; 
    mapdata.getline(return_val,num_characters); 
    return return_val; 
} 

und ich bekomme die Fehlermeldung:

'seekg': identifier not found

warum bekomme ich diesen Fehler und wie behebe ich ihn?

+0

Sind Sie Funktionen in einer Header-Datei definiert, ?? o.O Das richtige Format wäre, den Funktionsprototyp in der Header-Datei bereitzustellen und dann eine separate Datei (vielleicht andere.cpp) zu erstellen, die die Funktionalität von load_data definiert. – ParoXoN

Antwort

1

seekg ist eine Methode aus der Klasse fstream (in istream deklariert).

Sie haben keine instanziiert.

Nehmen Sie dies als ein Beispiel

ifstream is; 
    is.open ("test.txt", ios::binary); 

    // get length of file: 
    is.seekg (0, ios::end); 

Quelle: http://www.cplusplus.com/reference/iostream/istream/seekg/

Also, sollten Sie

char* load_data(int begin_point,int num_characters) 
{ 
    ifstream is; 
    is("yourfile.txt") //file is now open for reading. 

    seekg(begin_point); 
    char* return_val=new char[num_characters+1]; 
    mapdata.getline(return_val,num_characters); 
    return return_val; 
} 

berücksichtigen, was ParoXon in Ihrer Frage kommentiert.

Sie sollten eine Datei other.cpp erstellen, die die load_data-Implementierung der Funktion enthält. Die Datei other.h sollte die load_data-Deklaration der Funktion enthalten. In dieser Datei (other.h) sollten alle Dateien enthalten sein, die für die dort deklarierten Funktionen benötigt werden. Und vergessen Sie nicht, sich vor Mehrfacheinschlüssen zu schützen!

Datei other.h

#ifndef __OTHER_H__ 
#define __OTHER_H__ 

#include <iostream> 
#include <fstream> 

char* load_data(int,int);//no implementation 
#endif 

Datei other.cpp

#include "other.h" //assumes other.h and other.cpp in same directory 

char* load_data(int begin,int amount){ 
     //load_data implementation 
}