Frage

Ich habe ein Programm namens Haupt:

#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 erhalte die Fehlermeldung:

  

'seekg': Bezeichner nicht gefunden

Warum erhalte ich diesen Fehler und wie kann ich das Problem beheben?

War es hilfreich?

Lösung

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

Sie haben keine nicht instanziiert.

Nehmen Sie dies als 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;
}

Beachten Sie, was ParoXon in Ihrer Frage kommentiert.

Sie sollten eine Datei other.cpp enthält Funktion load_data Implementierung erstellen. Die Datei other.h sollte Funktion load_data Erklärung enthalten. In dieser Datei (other.h) sollten Sie alle Dateien enthalten für Funktionen neccesary erklärt, dort zu arbeiten. Und vergessen Sie nicht, sich selbst zu schützen gegen mehrere enthält!

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
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top