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

C/C++ Q/A
[6982] TURBO C++ 으로 컴파일을 하니 에러가 생깁니다.
goldrain [] 2609 읽음    2016-07-07 23:47
안녕하세요. 프로그래밍을 공부하는 학생입니다.
비주얼스튜디오 2013으로 공부하다가 터보C++를 써봤습니다.
같은 코드인데 비주얼스튜디오에서는 돌아가는게 터보C++에서 안돌아가서 질문드립니다.

다른 에러들은 다 처리했는데, 이 에러가 도저히 왜 생기는지 모르겠습니다.

line 10에 보시면 struct Signal로 구조체태그를 정의했는데요,
이게 에러가 뜨면서 에러메세지로 ", expected" 가 뜹니다.
확장자는 C++이 아닌 C로 했고 TURBO C++은 3.2.2.0 버전입니다.


여러방면으로 검색을 해봤는데 도저히 모르겠어서 질문글 올립니다. ㅠㅠ..
선배님들의 가르침에 미리 감사드립니다.

아래는 문제의 코드이고, 콘솔화면에 영화 매트릭스의 글자들이 주루룩 내려가는 장면을 숫자로 흉내낸 코드입니다.
내용은 사실 문제가 아니고, 도대체 비주얼스튜디오2013에서는 잘 돌아가는게 왜 터보c++에서는 line 10에서 에러가 나는지 모르겠습니다.
에러메세지 화면도 첨부하겠습니다.

#include <Turboc.h>

#define MAX 1024
#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define ESC 27

struct Signal
{
    BOOL exist;        //신호의 존재 여부
    char ch;        //출력할 문자
    int x, y;        //현재좌표
    int distance;    //이동할 거리
    int nFrame;        //속도
    int nStay;        //속도에 대한 카운트
};
Signal S[MAX];

void main()
{
    int i;
    int ch;
    int freq = 15;
    int frame = 200;

    clrscr();
    gotoxy(0, 23);
    printf("매트릭스 흉내내기. 상하:속도 증감, 좌우:빈도 증감, ESC:종료");
    randomize();
    for (;;){
        gotoxy(60, 23);
        printf("속도:%d, 빈도:%d        ", frame, freq);

        //키 입력 처리
        //_kbhit() 함수 : 입력이 있으면 1을 리턴, 없으면 0을 리턴

        //getch()함수를 이용하여 방향키를 입력받으면 라는 값이 나오는데,
        // 이 값은 아스키코드값이지만 아스키코드표에는 나오지 않는다.
        //그 이유는 일반 아스키코드값은 1byte인 반면 확장키(방향키,펑션키)
        //는 2byte이기 때문이다.

        //getch()함수는 1byte만 받을 수 있기 때문에 방향키를 입력받을 때에는
        //한번 더 호출해 주어야 한다.

        if (_kbhit()){
            ch = _getch();
            if (ch == 0xE0){
                ch = _getch();
                switch (ch){
                case UP:
                    frame = min(frame + 10, 1000);
                    break;
                case DOWN:
                    frame = max(frame - 10, 10);
                    break;
                case RIGHT:
                    freq = max(freq - 1, 1);
                    break;
                case LEFT:
                    freq = min(freq + 1, 30);
                    break;
                }
            }
            else{
                if (ch == ESC){
                    return;
                }
            }
        }

        //새로운 신호 생성
        if (random(freq) == 0){
            for (i = 0; i < MAX; i++){
                if (S[i].exist == FALSE){
                    S[i].exist = TRUE;
                    S[i].ch = random('Z' - 'A' + 1) + 'A';
                    S[i].x = random(80);
                    S[i].y = 0;
                    S[i].distance = random(14) + 9;
                    S[i].nFrame = S[i].nStay = random(15) + 5;
                    break;
                }
            }
        }
        //주기가 다 된 신호 이동 및 제거 처리
        for (i = 0; i < MAX; i++){
            if (S[i].exist == FALSE)
                continue;
            if (--S[i].nStay == 0){
                S[i].nStay = S[i].nFrame;
                gotoxy(S[i].x, S[i].y); _putch(' ');
                if (++S[i].y < S[i].distance){
                    gotoxy(S[i].x, S[i].y); _putch(S[i].ch);
                }
                else{
                    S[i].exist = FALSE;
                }
            }
        }
        delay(1000 / frame);
    }
}

+ -

관련 글 리스트
6982 TURBO C++ 으로 컴파일을 하니 에러가 생깁니다. goldrain 2609 2016/07/07
6984     Re:TURBO C++ 으로 컴파일을 하니 에러가 생깁니다. 2560 2016/07/10
6983     Re:TURBO C++ 으로 컴파일을 하니 에러가 생깁니다. Observer 2336 2016/07/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.