프로그래밍

 3198, 1/160 회원가입  로그인  
   lun4t1c
   [C언어] 도데체 뭐가 문제인지...

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2945 [복사]


#include <stdio.h>
#include <Windows.h>

void sign(void);
void error(void);

int main(void)
{
        int close, ex[10];

        sign();

        FILE * file = fopen("Exam.txt", "wt");

        // 1번
        puts(":) 1. 다음 중, 반복문이 아닌 문법은 무엇인가.");
        puts(":) - 1. while문 / 2. switch문 / 3. do ~ while문 / 4. for문");
        fputs(":) - - 답 : ", stdout);
        scanf_s("%d", ex[0]);
        fprintf(file, "%d", ex[0]);

        if(ex[0] < 1 && ex[0] > 4)
                error();

        system("cls");
        
        // 2번
        puts(":) 2. 배열의 이름을 a로 선언 한 경우에 다음 중, 다른 것을 출력하는 것은 무엇인가.");
        puts(":) - 1. a / 2. *a / 3. &a / 4. &a[0]");
        fputs(":) - - 답 : ", stdout);
        scanf_s("%d", ex[1]);
        fprintf(file, "%d \n", ex[1]);

        if(ex[1] < 1 && ex[1] > 4)
                error();

        system("cls");

        // 3번
        puts(":) 3. 다음 중, 할당 된 배열의 길이만큼 문자열을 복사해주는 String.h 의 함수는 무엇인가.");
        puts(":) - 1. strlen / 2. strcpy / 3. strncpy / 4. strcat");
        fputs(":) - - 답 : ", stdout);
        scanf_s("%d", ex[2]);
        fprintf(file, "%d \n", ex[2]);

        if(ex[2] < 1 && ex[2] > 4)
                error();

        system("cls");

        close = fclose(file);

        return 0;
}
void sign(void)
{
        char ch;

        puts("┌─────────────────────────────────────┐");
        puts("│Programming Exam / C Laguege                                       │");
        puts("│Made by LuN4t1C                                                           │");
        puts("└─────────────────────────────────────┘");
        
        printf("Are You Ready? (Y/N) : ");
        ch = getchar();

        if(ch == 'Y' || ch == 'y')
                system("cls");
        else {
                Sleep(1500);
                exit(0);
        }
}
void error(void)
{
        puts("범위를 벗어 난 숫자입니다.");
        Sleep(3000);
        exit(FALSE);
}


------------------------


심심해서 짜본 C언어 문제푸는 프로그램인데요...

제가 볼 땐 문제가 없는 듯 보이는데


--------------------


1>------ 모두 다시 빌드 시작: 프로젝트: APU_Exam, 구성: Debug Win32 ------
1>  APU.c
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(14): error C2275: 'FILE' : 이 형식을 식으로 잘못 사용했습니다.
1>          c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(66) : 'FILE' 선언을 참조하십시오.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(14): error C2065: 'file' : 선언되지 않은 식별자입니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(21): error C2065: 'file' : 선언되지 않은 식별자입니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(21): warning C4047: '함수' : 'FILE *'의 간접 참조 수준이 'int'과(와) 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(21): warning C4024: 'fprintf' : 형식 및 실제 매개 변수 1의 형식이 서로 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(33): error C2065: 'file' : 선언되지 않은 식별자입니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(33): warning C4047: '함수' : 'FILE *'의 간접 참조 수준이 'int'과(와) 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(33): warning C4024: 'fprintf' : 형식 및 실제 매개 변수 1의 형식이 서로 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(45): error C2065: 'file' : 선언되지 않은 식별자입니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(45): warning C4047: '함수' : 'FILE *'의 간접 참조 수준이 'int'과(와) 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(45): warning C4024: 'fprintf' : 형식 및 실제 매개 변수 1의 형식이 서로 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(52): error C2065: 'file' : 선언되지 않은 식별자입니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(52): warning C4047: '함수' : 'FILE *'의 간접 참조 수준이 'int'과(와) 다릅니다.
1>c:\users\lg\documents\visual studio 2010\projects\apu_exam\apu_exam\apu.c(52): warning C4024: 'fclose' : 형식 및 실제 매개 변수 1의 형식이 서로 다릅니다.
========== 모두 다시 빌드: 성공 0, 실패 1, 생략 0 ==========


이런 식으로 에러가 나네요...

원래 이런거 질문하면 안되는건 알지만

한번만 부탁드립니다ㅠㅠ

이게 왜 에러가 뜨는거죠?

  Hit : 17516     Date : 2011/04/10 10:56



    
7evenLeaf main 에서, sign()함수 호출다음에 파일 오픈을 하잔아요 ?
파일 오픈 할때 FILE구조체를 선언하는 것도 변수의 선언처럼
main의 제일 위에 있어야 합니다.
sign() 호출을 파일 오픈 밑으로 내리시구요,
중간 중간에 scanf_s 하실때 & 빠뜨리셨네요,
그 외에는 정상 작동 되는것 같습니다 ^^
2011/04/10