Skip to content
Windows

VC6.0 디버깅할때...만 Debug assertion failed와 fscanf.c 에러가 나오는 이유?

by 흑엽 posted Mar 12, 2009

 

#include "stdafx.h"
#include <stdlib.h>

#define INPUT_FILE "input.txt"
#define OUTPUT_FILE "output.txt"

int T;
FILE *inf, *outf;
 void main()

 inf = fopen(INPUT_FILE, "r");
 outf = fopen(OUTPUT_FILE, "w");

 fscanf(inf, "%dn", &T);
}

위의 코드로 컴파일을 시도 할때는 문제가 없는데
디버깅할 때만...
아래와 같은 창이 뜨고 에러메세지가 나오는 이유는??

debug assertion failed
------------
file : fscanf.c
Line : 54
Expression : stream !=Null
------------

#define INPUT_FILE "input.txt"의
"input.txt" 은 "input.txt" 즉....같은 폴더위치에 있는 파일을 가리키는 것임.

소스코드위치가
  C:testcode 일 경우...

컴파일후 exe파일이 
   C:testcodeDebug에 생성된다..
   따라서 컴파일된 exe파일이 있는, 현재 위치에 해당하는 C:testcode\Debug 폴더 안에
   "input.txt" "output.txt" 집어넣고 결과를 보기 때문에 에러가 없다.

하지만 디버깅할때는
  현재 폴더 위치가 소스코드가 있는 C:\testcode 가 됨으로...
  "input.txt"  "output.txt" 파일이 debug안에만 있다면 당연히 파일을 찾을 수 없게 되며
  따라서 파일 포인터의 값 때문에, 디버깅 도중에 에러가 발생함.(저는.. 부록CD소스 테스트할때 가끔 발생해요;;)

"input.txt"  "output.txt"를 C:\testcode<--여기에 복사하면 됨.

TAG •

Windows

Visual C++(VC6.0) 디버깅할 때 ASM파일을 찾을 경우

by 흑엽 posted Feb 25, 2009
Visual C++(VC6.0) 디버깅할 때,

F11로 한줄씩 따라가다...
이런 메세지가 나올수 있음.
Find Source
Please enter the path for
OOOOO.ASM.

VC runtime library 중에 CRT를 설치하여 해결할수도 있음.

제어판->프로그램 추가/삭제->"Microsoft Visual Studio 6.0"->변경/제거->추가/삭제->Microsoft Visual C++ 6.0 선택후, 옵션변경 클릭--
-->런타임 라이브러리 선택후, 옵션변경-> 필요한것들을 설치.

 

TAG •

Board Pagination Prev 1 Next
/ 1

Copyright ⓒ 성우 All rights reserved

Powered by SungWoo / Designed by SungWoo

sketchbook5, 스케치북5

sketchbook5, 스케치북5