"معرف seekg لم يتم العثور على"
-
05-07-2019 - |
سؤال
ولدي برنامج يسمى رئيسية هي:
#include<iostream>
#include<fstream>
using namespace std;
#include"other.h"
int main()
{
//do stuff
}
وثم 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;
}
ووأحصل على خطأ:
<اقتباس فقرة>'seekg': المعرف لم يتم العثور
اقتباس فقرة>لماذا أحصل على هذا الخطأ وكيف يمكنني إصلاحه؟
المحلول
وseekg هي طريقة من fstream (أعلن في istream) فئة.
وكنت لم مثيل وجدت.
ويأخذ هذا كمثال
ifstream is;
is.open ("test.txt", ios::binary );
// get length of file:
is.seekg (0, ios::end);
المصدر: http://www.cplusplus.com/reference/iostream/ istream / seekg /
وهكذا، يجب عليك
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;
}
وتأخذ بعين الاعتبار ما علق ParoXon في سؤالك.
ويجب إنشاء other.cpp ملف يحتوي على تنفيذ load_data الدالة. ملف other.h يجب أن يحتوي إعلان load_data الدالة. في هذا الملف (other.h) يجب أن تشمل جميع ملفات البيانات يجب للوظائف المعلن عنها للعمل. ولا تنسى لحماية نفسك ضد يتضمن متعددة!
وملف other.h
#ifndef __OTHER_H__
#define __OTHER_H__
#include <iostream>
#include <fstream>
char* load_data(int,int);//no implementation
#endif
وother.cpp الملف
#include "other.h" //assumes other.h and other.cpp in same directory
char* load_data(int begin,int amount){
//load_data implementation
}
لا تنتمي إلى StackOverflow