-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
fopen에서 계속 오류가 납니다
20.05.19 22:45 작성 조회수 132
0
#include <stdio.h>
#define MAX 10000
int main() {
char line[MAX];
char contents[MAX];
char initpw[20];
char pw[20];
char c1,c2; //키값 확인용
int i1 = 0;
int pwisSame=0; //패스워드 확인용
//비밀번호 초기설정 단계
printf("초기 비밀번호를 설정합니다\n");
printf("비밀번호 : ");
while (1) {
c1 = getch(); //getchar는 엔터를 입력받아야 동작하지만 getch는 입력 받을때마다 동작
if (c1 == 13) { //13는 아스키코드에서 Enter
initpw[i1] = '\0'; //NULL
break;
}
else {
initpw[i1] = c1;
printf("*");
i1++;
}
}
printf("\n비밀번호 설정이 완료되었습니다\n\n");
while (pwisSame < 1) {
//사용자의 비밀번호 입력
int i2 = 0;
printf("비밀번호를 입력해주세요\n>>");
while (1) {
c2 = getch();
if (c2 == 13) { //c는 아스키코드에서 Enter
pw[i2] = '\0';
break;
}
else {
pw[i2] = c2;
printf("*");
i2++;
}
}
//비밀번호가 일치하는지 확인
if (strcmp(initpw, pw) == 0) { //strcmp==0이면 문자열이 일치하는것
printf("\n\n======비밀번호 확인 완료======\n\n");
pwisSame = 1;
}
else {
printf("\n\n======비밀번호 확인 실패======\n\n");
}
}
//파일 연결
FILE *fileO = fopen("C:\\Users\\qwert\\Desktop\\diary.txt", "a+b"); //파일이 없으면 생성해줌
if (fileO == NULL) printf("파일 오픈 실패\n");
else {
//파일 내용 불러오기(fgets)
while (fgets(line, MAX, fileO) != NULL) {
printf("%s", line);
}
printf("\n\n추가할 내용을 입력하세요 입력을 종료하려면 EXIT를 입력하세요\n\n");
//내용 추가(fputs)
while (1) {
scanf("%[^\n", contents);
if (strcmp(contents, "EXIT") == 0) {
printf("입력을 종료합니다");
exit(0);
}
else fputs(contents, fileO);
}
fclose(fileO);
}
}
비밀번호 확인까지는 멀쩡하게 동작하는데 이상하게 fopen이 안됩니다 "파일 오픈 실패"가 뜨면서 끝나버려요 다른 질문에 선생님이 달아주신 코드 그대로 복사해서 실행해봤는데 그 코드도 파일 열기에 실패합니다 뭐가 문제인걸까요ㅠㅠ
답변을 작성해보세요.
답변 0