비쥬얼스튜디오 오류
희선
질문 제목 : 비쥬얼스튜디오 오류파일입출력, 유니코드 오류질문 내용 :
filename을 표준입력 받아서 소문자로만 구성된 텍스트를 모두 대문자로 바꾸는 건데요(스페이스없고 뉴라인은 있는 파일)
예를 들면,
filename 안에 아래와 같은 텍스트가 있다고하면
abcdefghi
jklmn
프로그램 후에는
abcdefghi
jklmn
으로 바뀌어 있어야 하는데요.
비쥬얼에서 짜는데 한국어 인코딩으로 로드하는 동안 일부 바이트가 유니코드 대체 문자로 바뀌었습니다. 파일을 저장하면 원래 파일 내용이 바뀝니다. 오류가 뜨고
실제 실행해보면 아래 처럼 나오네요.
abcdefghi?klmn
어디가 문제일까요? 그냥 비쥬얼스튜디오가 문제인지...... 혹시 비주얼 가지고 계신분 잘 되시는지요.
아니면 코드 잘못된 부분좀 고쳐주세요.
#include stdio.h
#include stdlib.h
int main()
{
char *s, filename[100];
unsigned long n,i;
file *fp,*fo;
printf(enter the filename : );
scanf(%s, filename);
fp = fopen(filename,r);
if(!fp)
{
fprintf(stderr, file open error\n);
exit(1);
}
fseek(fp, 0, seek_end);
n=ftell(fp);
fseek(fp, 0, seek_set);
s=(char *)malloc(n);
fread(s,n,1,fp);
fclose(fp);
fo=fopen(filename,w);
if(!fo)
{
fprintf(stderr, file open error\n);
exit(1);
}
for(i=0;in;i++)
{
fputc(*(s+i)-32,fo);
}
fclose(fo);
system(pause);
return 0;
}