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
[64735] Re:텍스트파일의 코들르 읽어서 그대로 실행하는 방법 없을까요?
이치고 [seokj777] 1154 읽음    2011-07-01 20:24
학부생 님이 쓰신 글 :
: 코드를 짜야하는데
:
: C++로 코드를 짜야합니다. 이 프로그램의 목적은
:
: 텍스트파일을 읽는데, 이 텍스트 파일에는 int main(){}속에 여러 문장들이 있습니다
:
: 과제로는 if,while 의 연산과 일반적인 연산자를 처리할 수 있는 프로그램을 만들라고 하셨는데,
:
: 일반적인 연산자를 처리할 때 우선순위를 어떻게 만들어야 할 지 모르겠어서 질문 올립니다 ㅠㅠ
:
: 텍스트파일에서 a=2;(a+=3)*2; 를 읽으면 이대로 실행을 해야하는데, 어떻게 해야할지 감이 잘 안잡히네요 ㅠㅠ
:
: 아이디어 있으신 분들 도와주시길 간절히 부탁드립니다....ㅠㅠㅠ정말 급한상황인지라...모쪼록 부탁드려요 ㅠ

일단 전체적인 프로그램 흐름을 말씀드리자면...
TEXT화일을 OPEN하는 함수가 필요하구요
화일을 한줄씩 읽어나가는 코드가 필요합니다.
한줄식 읽은 TEXT문을 인코딩? 해야하는데요. 간략하게 위 예문을 설명을 드리자면...

a=2;
for문을 이용해서 = 을 찾습니다.
그럼 좌측에 있는것은 대입해야할 변수가 되겠죠( 숫자에는 대입할 수 없으니까...)
그럼 우측에는 연산자들과 숫자들 그리고 변수들이 있겠네요.
첫줄부터 변수들이 있다면 기억해 둘 변수가 있어야 합니다.
그리고 그 변수에 대입된 숫자들이 값이 할당된 값이고 나중에 연산할 때 필요하겠죠.

위 문장은 c++코드상으로는 좌측변에 변수가 없기때문에 에러가 발생하는데 연산만 하시는것니깐
변수를 잡은것을 기억해 두고 한줄에 대한 값을 나타내게만 해주면 될것 같습니다.

연산자 우선순위는 인터넷에 찾아보시면 금방 찾을 수 있는데요.
위 보기에서는 ( 괄호가 나오면 반드시 )괄호가 나오게 됩니다.

한문자씩 계속 해석을 해나가보면 (와 ) 사이에 있는값이 어느위치있지 찾았으니까
괄호 안에있는 문장을 다시 분석합니다.(한문자씩 꺼내서...) 여기선 a+=3 이라고 나왔네요
그러면 숫자를 뺀 나머지 문자들을 분석합니다. +=은 좌측변의 변수에 누적시키는 것인데요
길게 늘어쓰면 a=a+3이 되겠네요. 그럼 아까 a는 변수로 기억되어 있었는지 비교해보고
a가 기억된 값과 3을 더해 a에 다시 대입해줍니다.
이제 괄호가 끝나고 다음 문자를 Get합니다.~~

동일한 방식으로 숫자를 뺀 문자을을 어느위치에 있고 어떤것인지 분석합니다.
.... 이런식으로 문자를 이용해서 해당 문자가 숫자인지 문자인지 연산자인지 괄호인지를 차근차근
분석해 나가시면 쉽게 해결하실 수 있을것 같군요. ^^

+ -

관련 글 리스트
64734 텍스트파일의 코들르 읽어서 그대로 실행하는 방법 없을까요? 학부생 994 2011/07/01
64736     Re:텍스트파일의 코들르 읽어서 그대로 실행하는 방법 없을까요? evergreen 1189 2011/07/02
64735     Re:텍스트파일의 코들르 읽어서 그대로 실행하는 방법 없을까요? 이치고 1154 2011/07/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.