C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[28137] Re:기초적인 파일 입출력에 관한 질문입니다..
유영인 Cuperido [cuperido] 1339 읽음    2003-12-07 04:55
char      ch;

char형은 1 byte. 즉 아스키코드 0부터 255까지의 1개를 저장할 수 있는 공간입니다.
이 것을 배열로 선언한다면.. 아스키코드의 배열.. 즉 문자열로 사용할 수 있는 배열이
만들어 집니다.

char      st[256];

이렇게 선언하신다면 최대 256개의 문자를 가질 수 있는 문자열이 되는 것입니다.
만약, 가변을 원하신다면...

char      *st;

이렇게 포인터로 선언하셔서 malloc과 free를 하시는 방법이 있고, 대부분 모든 가능성을
열어두고 프로그래밍을 하기 때문에 실제 업무에서는 이렇게 대부분 사용됩니다.
우선, 이 것은 이 문제에 대하여 필수 요건은 아니므로 이런게 있다는 식으로만 넘어가고요..

그리고, 아스키코드중에 엔터는 13 번입니다.
즉, 13번이 나온다면, 한 줄이 넘어갔다는 의미입니다.

한 캐릭터씩 읽어서 13번이 아니라면, 한 글자씩 더해주고, 13번이면 문장의 끝이므로 비교를
해서 robot이 맞으면, 이제까지 아스키코드 13번이 나온 횟수를 리턴해 주면 결과 값이 나올
것이라 생각됩니다.

다른 더 좋은 ansi c의 방법으로는 fopen과 fgets을 이용하는 방법이 있습니다. fgets은 1줄씩
읽어들이는 함수로, char st[256]; 이렇게 선언을 하신후, fgets으로 읽어서 robot인지 비교만
하시면 되고요..

더더 좋은 방법으로는 빌더의 vcl 컨트롤인 StringList등으로 LoadFromFile로 파일을 읽어들인
다음, IndexOf 메소드로 찾으면 바로 그 줄이 리턴되는데, 로터스 님께서 사용하시는 베이스가
빌더는 아닌것 같아서 기본 ansi c에서 사용할 수 있는 방식으로만 설명해 드렸습니다.

과제이신듯.. 열심히 하셔서 좋은 성과 거두시길 바랍니다. ^^


로터스 님이 쓰신 글 :
: computer
: data
: robot
: zet
:
: 이렇게 이미 알파벳 순으로 정렬되어있는 word.txt라는 텍스트 파일을 읽어들인 후 검색을 하려고 합니다.
: 검색어로 robot을 치면, 세번째에 있다는 의미로 '3'이 출력되게 하려고 합니다.
: 그런데 아래와 같이
:
: ifstream fin("word.txt");
: char ch;
: while(fin.get(ch))
: ...
:
: 이런 식으로 코딩을 하면 배열에 아래와 같이 입력이 되는 것 같습니다.
: [0][1][2][3][4][5][6][7][8][9][10]...
:  c  o  m  p  u  t  e  r  d  a   t ...
:
: 이런식이여서, 검색이 제대로 되지 않습니다.
: 저는 아래와 같은 2차원 배열방식으로 데이터를 읽어들이고 싶습니다.
:    [0][1][2][3][4][5][6][7]
: [0] c  o  m  p  u  t  e  r
: [1] d  a  t  a
: [2] r  o  b  o  t
: 그럼 검색을 하기가 한결 수월할 것 같은데요...
:
: 항상 데이터나 검색어로 상수만 써오다가(1,2,3 같은..) 문자열을 처리하려고 하니까 혼란스럽습니다.
: 검색을 문자열로 해야하는 것도 쉽지만은 않군요..
:
: 어쨌든, 위와같이 이차원 배열 형태로 파일입력을 하려면 어떻게 코딩을 해야 하는 것인지 궁금합니다..
: 혹시 저런 방법 말고 더 좋은 방법이 있나요?. 가르쳐주시면 정말 고맙겠습니다.
:
: 그럼 좋은 주말 보내세요~

+ -

관련 글 리스트
28136 기초적인 파일 입출력에 관한 질문입니다.. 로터스 877 2003/12/07
28137     Re:기초적인 파일 입출력에 관한 질문입니다.. 유영인 Cuperido 1339 2003/12/07
34131         Re:Re:기초적인 파일 입출력에 관한 질문입니다.. 로터스 900 2003/12/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.