기댈곳은 오유뿐이군요 ㅜㅜ;
대략 정렬되 있는 텍스트 파일을 읽어서
키값을 입력받아서 텍스트 파일을 찾는거예요..
여기에 bsearch를 썻는데 도무지 안되서...
그리고 텍스트 파일에 단어는 구조체 배열에 저장해놨습니다.. 좀 도와주세요ㅠㅠ 왜 안될까요ㅜㅜ 제발!!!
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include "iostream"
#define SIZE 3011
using namespace std;
struct all
{
char word[22];
};
int compare(const void*, const void*);
int main()
{
int count=0;
char **Result;
char find[22]; //키값으로 쓸것
all a; //파일 크기를 알기 위해 구조체 선언
fstream infile;
infile.open("data.txt");
while(infile)
{
infile >> a.word ;
count ++;
} //파일을 열고 크기를 count에 저장
count--;
infile.clear();
infile.seekg(ios::beg);
all alls[SIZE];
//데이터 읽기 시작
for(int i=0; i< count; i++)
{
infile >> alls[i].word;
}
//다읽엇음
infile.close();
cout<<"사전에 저장된 단어 리스트 입니다 "<<endl;
for(int i=0; i<count; i++)
{
cout<<i+1<<" "<<alls[i].word<<"\t";
if(i%2) cout<<endl;
}
cout<<endl;
cou
t<<"검색할 단어를 선택하세요 : " ;
scanf("%s",&find);
Result=(char**)bsearch(&find, alls, SIZE, sizeof(alls[0]), compare);
if(Result == NULL)
cout<<"입력한 값을 찾을 수가 없습니다. ";
else
cout<<"검색된 값 : "<<*Result;
return 0;
//delete [] alls;
}
int compare(const void* pkey, const void* pvalue)
{
return strcmp((char*)pkey, *((char**) pvalue));
}
부탁좀 드릴게요 ㅠㅠ