-2
我正在使用turbo C++ 3.5中的二進制文件,我想創建一個庫程序。我想在二進制文件中添加有關書籍的信息,並執行如下功能:搜索和替換,刪除記錄等。C++二進制文件添加記錄,搜索並替換
我這樣做的功能,但我有2個問題:1.例如,當我添加6關於要存檔的書籍的記錄,BooksReport功能不能顯示所有記錄,例如只顯示4或5條記錄,以及當我從5條記錄中搜索記錄時,例如我剛剛找到3條或2條記錄。 2.當我搜索並替換文件上的單詞時,此編輯記錄之前的所有記錄將被刪除。
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void add();
void search();
struct {
char name[20];
char id[2];
char publisher[20];} books, listbooks[100];
void main(){
add();
// search();
getch();
}
//Add
void add(){
FILE *pt;
pt=fopen("books.dat","a");
clrscr();
printf("\t Please Enter Data for new book");
printf("\n Please enter Name:");
scanf("%s", &books.name);
printf("Please enter ID:");
scanf("%s", &books.id);
printf("Please enter Publisher:");
scanf("%s", &books.publisher);
fwrite(&books, sizeof(books), 1,pt);
fclose(pt);
}
void search(){
//Search and replace
pt=fopen("books.dat","w+");
char replaceName[20];
char searchName[20];
rewind(pt);
found=0;
printf("Please enter search word \n");
scanf("%s", &searchName);
printf("Please enter replace word \n");
scanf("%s", &replaceName);
i=0;
do{
i++;
fread(&books, sizeof(books), i,pt);
if(strcmp(searchName,books.name)==0){
found=1;
strcpy(books.name,replaceName);
fwrite(&books, sizeof(books), i,pt);
break;}
}while(!feof(pt));
clrscr();
if(found==1){
printf("Replace successful!");
}
if(found==0){
printf("Not Found");
}
fclose(pt);
}
你想知道爲什麼沒人回答嗎?因爲你使用了一個22歲的編譯器,非標準的代碼,沒有縮進,並... – deviantfan
請幫助我。我是學生,應該使用turbo C++。我的代碼中存在什麼問題? –
如果您想使用正確的C++,那麼在不使用新軟件的情況下可能無法提供幫助。 G ++/MinGW(和其他)是最新的免費軟件。關於你的代碼問題:a)它看起來像你想製作一個C程序,而不是C++。 b)conio.h c)不完整(沒有主,沒有功能頭...)d)... – deviantfan