編集:この質問は編集することをお控えください。あなたの時間を無駄にしないでください!ありがとうございますプライベートヘッダファイルのデータファイル処理関数を作成するには? (編集する)
私はHigh School Turbo C++をやっています。私はバイナリファイルを検索する関数を含むヘッダファイルを作ろうとしました。 マイHEADERFILEプログラムは次のとおりです。
#ifndef ALPHA_H
#define ALPHA_H
#if !defined __FSTREAM_H
#include<fstream.h>
#endif
#if !defined __PROCESS_H
#include<process.h>
#endif
void searchclass(char* & buf, int, char *);
#endif
alpha.h私はインターネット上でやったいくつかの研究によると、私は定義がメインのヘッダファイルではない別のプログラムに行くことが分かりました。私は、私はいくつかの特定のint型のためのクラスの形式でレコードを格納し、ランダムなバイナリファイルを検索することができます関数を記述しようとしているALPHA.CPP
#include<process.h>
#include<fstream.h>
#include"alpha.h"
//All the Definations of the alpha.h header file go here
void searchclass(char* & buf, int s_var, char * file)
{
ifstream fin;
fin.open(file, ios::binary);
if(!fin)
{
cout<<"Error 404: File not found";
exit(-1);
}
while(!fin.read((char*)buf, sizeof(buf)))
if(buf.getint()==s_var)
cout<<"\n\nRecord Found!";
buf.show();
fin.close();
}
に注意してください:これは、そのプログラムがあります変数。だから、どのクラスのオブジェクトでも取り込み、その中で検索を実行できるはずです。
これは私のヘッダファイルをチェックするために書いたプログラムです。 (プログラム上)A_TEST.CPPをコンパイルするにはA_TEST.CPP
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include"alpha.h"
#include<string.h>
class stu
{ int rn;
char name[20];
public:
void show() //Display Function
{
cout<<"\n\tStudent Details:";
cout<<"\nName: "<<name;
cout<<"\nRoll No.: "<<rn;
}
stu() //constructor
{
rn = 6;
strcpy(name,"Random Name");
}
int getint() //return function
{
return rn;
}
};
char* returnfile()
{ char file[10];
strcpy(file,"file.dat");
return file;
}
void main()
{
clrscr();
int search_var=6;
stu S1;
char file[10];
strcpy(file, "test.dat");
ofstream fout;
fout.open(file, ios::binary);
fout.write((char*)&S1, sizeof(S1));
fout.close();
searchclass((char*)& S1, search_var, file);
getch();
}
、私は警告を取得:リンクについて
Warning A_TEST.CPP 45: Temporary used for parameter 'buf' in call to 'searchclass(char * &,int,char *)'
を、それは私に、このエラーを与える:
Linking A_TEST.EXE
Linker Error: Undefined symbol searchclass(char nearnear&,int,char near) in module A_TEST.CPP
私はALPHA.CPPファイルがalpha.hファイルにリンクしているとは思わない、私はALPHA.CPPファイルをコンパイルする場合、それは私に次のエラーを与える:
Error ALPHA.CPP 17: Structure required on left side of . or .*
Error ALPHA.CPP 19: Structure required on left side of . or .*
Warning ALPHA.CPP 21: Parameter 's_var' is never used
いいえ、getint()関数とshow()関数をどうやって使うのですか?それはクラスなので、データメンバーは非公開で隠されています。また、あなたのコードを私の代わりにする方法についてはちょっと混乱しています。私がしようとしているのは、alpha.hファイルが含まれているプログラムでsearchclass()関数を動作させることです。クラスは何でもかまいません(クラスはクラス_uu_である必要はありません。クラスのオブジェクトをバッファの形で渡そうとしていました......これはクラスで教えられていないので私は完全に間違っている可能性があります –
あなたのコードはエラーを返します: "istreamをintに変換できません"。 –