# include & ltfstream.h & gt
# include & ltstring.h & gt
# include & ltiostream.h & gt
//파일 읽기 방법
Fstream 파일;
File.open("data.txt ",IOs:: in); //읽기를 통해 data.txt 파일을 엽니다.
File.eof () 는 파일을 읽는지 여부를 결정합니다.
File.getline(char *line, int n)
Getline 메서드는 파일에서 문자 행을 읽는 데 사용됩니다. 여기서 첫 번째 매개 변수 행은 문자열에 대한 문자 포인터 또는 문자열을 저장하는 문자 배열이며 n 은 이번에 읽은 최대 문자 수를 나타냅니다.
//파일 쓰기 방법
File.open("data.txt ",IOs:: out); //쓰기 작업을 통해 data.txt 파일을 엽니다.
File.write(char *line, int n)
Write 메서드는 파일에 문자 행을 쓰는 데 사용됩니다. 여기서 첫 번째 매개 변수 행은 문자열에 대한 문자 포인터이거나 문자열을 저장하는 데 사용되는 문자 배열이며, n 은 이번 쓰기의 문자 수를 나타냅니다.
서류. Put (char c), put 메서드는 파일에 문자를 쓰는 데 사용됩니다.
File.close (); //파일을 읽거나 쓰는 등 파일을 닫습니다. 사용 후 파일을 닫아야 합니다.
절차는 다음과 같습니다. 수정한 후에는 오류 및 경고가 표시되지 않습니다. 그러나 런타임에 단어를 찾고 삽입하고 삭제할 때 끼워집니다. 조언 좀 해주세요. 어떻게 된 거야? 대단히 감사합니다!
사전. h
#ifndef _DICTIONARY_H
# 정의 _ 사전 _H
Const int size = 30
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Dictionary::dictionary()// 레코드가 비어 있으면 * 를 만들어 끝으로 사용합니다.
{
Text.open("d:\\tiny-dict.txt ",IOs:: in | IOs:: out);
If(text.eof ())
텍스트<< "*";
Text.close ();
}
Void dictionary::findWord ()
{
Cout & lt& lt "질의할 단어를 입력하십시오."
문자열 문자
CIN>;; & gtword
Text.open("d:\\tiny-dict.txt ",IOs:: in); //읽을 파일을 엽니다.
Int I = 0;;
While( 1)
{
문자열 온도
Text & gt& gt 온도;
If(temp=="*")// 데이터 끝에 * 를 추가하면 파일 끝을 나타냅니다.
{
Cout & lt& lt "라는 단어를 찾을 수 없습니다."
깨뜨리다
}
If(word==temp)
{
Cout & lt& lt "해석:";
하다
{
Text & gt& gt 온도;
If(temp = = """)///해석 끝에% 를 추가하여 해석 끝을 나타냅니다.
깨뜨리다
Cout & lt& lttemp & lt& lt "";
}while(temp! = "%");
Cout & lt& ltendl
}
If(temp== "") 입니다
깨뜨리다
I+= 크기;
Text.seekg(i, IOs:: beg);
}
Text.close ();
}
Void 사전:: insertWord ()
{
Cout & lt& lt "추가할 단어를 입력합니다."
문자열 문자
CIN>;; & gtword
Cout & lt& lt "추가한 단어의 정의를 입력합니다."
문자열 해석
Cin.ignore ();
게블린 (CIN, 의역);
Cout & lt& lt 해석<& ltendl
Text.open("d:\\tiny-dict.txt ",IOs:: in | IOs:: out);
Char z;;
Int I =-size;;
그리고 (z! =' *' & amp& ampz! ='+')//* 는 끝을 의미하고+는 한 단어가 남긴 영역을 삭제하는 것을 의미합니다.
{
I+= 크기;
Text.seekp (a);
Text & gt& gtz;;
}
If (word.length ()+paraphrase.length ()+4 > Size)// 단어와 그 정의 사이의 공백과 끝을 표시하는 공백에% 와 공백을 더하면 4 가 추가됩니다.
{
Cout & lt& lt 입력이 너무 길어서 삽입에 실패했습니다 < & ltendl
반환;
}
Text.seekp(i, IOs:: beg);
Text & lt& ltword & lt& lt" ""<& lt lt 해석<& lt"% ";
If(z=='+')
{
Text.close ();
반환;
}
Text.seekp(i+size, IOs:: beg);
텍스트<< "*";
Text.close ();
}
Void 사전:: deleteWord ()
{
Cout & lt& lt "삭제된 단어를 입력하십시오."
문자열 문자
CIN>;; & gtword
Text.open("d:\\tiny-dict.txt ",IOs:: in | IOs:: out);
문자열이 삭제되었습니다
Int I =-size;; //삭제 위치 표시
하다
{
I+= 크기;
Text.seekg (a);
Text & gt& gt 가 삭제되었습니다.
If(Deleted=="* ")
{
Cout & lt& lt "단어를 찾을 수 없습니다. 삭제에 실패했습니다." < & ltendl
반환;
}
} 및 (이 (가) 제거되었습니다! = 단어);
Text.seekp (a);
텍스트<< "+"; //첫 번째 요소는 비어 있음을 나타내는+로 표시됩니다.
For (int j =1; J< 크기; J++)
{
Text & lt& lt "";
}
Cout & lt& lt "가 성공적으로 삭제되었습니다."
Text.close ();
}
#endif
기본 페이지
Std:: cout; 을 사용합니다
Std:: endl;
Std:: CIN;
# include & ltfstream & gt
Std:: IOs 사용
STD::fstream; 사용
# include & lt 문자열>
STD::string;;
STD::getline; 사용
# "dictionary.h" 포함
카테고리 사전
{
공용:
사전 ();
Voidfindword ();
Voidinsertword ();
Void deleteword ();
개인:
Fstream 텍스트;
}
잘못된 명령 ()
{
Cout & lt& lt "선택: \n( 1). 단어 찾기 \n(2). 단어 삽입 \n(3). 단어 삭제 \n(4). 종료 \ n ";;
}
Int main ()
{
명령 ();
Intselect = 0;
CIN>;; & gt 선택;
그리고 (선택! = 1 입니다. & amp 선택! = 2 & amp& amp 선택! = 3 & amp& amp 선택! =4)
{
Cout & lt& lt "선택 오류입니다. 다시 선택하십시오." < & ltendl
명령 ();
CIN>;; & gt 선택;
}
사전 작업
Bool exe = true
While(exe)
{
스위치 (선택)
{
사례 1:
Oper.findword ();
깨뜨리다
사례 2:
Oper.insertword ();
깨뜨리다
사례 3:
Oper.deleteword ();
깨뜨리다
시나리오 4:
Exe = false
깨뜨리다
}
If (선택 = = 4)
깨뜨리다
명령 ();
CIN>;; & gt 선택;
그리고 (선택! = 1 입니다. & amp 선택! = 2 & amp& amp 선택! = 3 & amp& amp 선택! =4)
{
Cout & lt& lt "선택 오류입니다. 다시 선택하십시오." < & ltendl
명령 ();
CIN>;; & gt 선택;
}
}
0 을 반환합니다
}
D:\\tiny-dict.txt 는 다음과 같습니다: (영국 사전, 왼쪽 열 영어, 오른쪽 열 독일어).
그레이퍼거 버드 로브퍼거
토끼고기 통조림
원숭이 Affe
마푸펠드
크레브스게 클라비
독수리 애들러, Aar zean 달러 지폐