• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

코딩질문입니다..

20.03.11 17:53 작성 조회수 96

0

실행이 안되는데 오류목록에는 아무것도 안나와요..

1시간동안 찾아봤는데 뭐가 문제인지 모르겠어요ㅠㅠ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//비밀번호를 입력 받아서
//맞는 경우? 비밀 일기를 읽어와서 보여주고, 계속 작성하도록 합니다.
//틀린 경우? 경고 메세시를 표시하고 종료합니다.

#define MAX 10000

int main_file_project(void)
{
	//fgets, fputs 활용
	char line[MAX]; //파일에서 불러온 내용을 저장할 변수
	char contents[MAX]; //일기장에 입력할 내용
	char password[20]; //비밀번호 입력
	char c; //비밀번호 입력 할 때 키값 확인용[마스킹]
	printf("비밀일기에 오신 것을 환영합니다.\n");
	printf("비밀번호를 입력하세요 : ");

	// getchar() getch()의 차이?
	// getchar() : 엔터를 입력받아야 동작을 합니다.
	// getch()   : 키 입력시 바로 동작을 합니다.

	int i = 0;
	while (1)
	{
		c = getch();
		if (c == 13) //Enter키 아스키코드 -> 비밀번호 입력 종료
		{
			password[i] = '\0';
			break;
		}
		else
		{
			printf("*");
			password[i] = c;
		}
		i++;
	}

	printf("\n\n===비밀번호 확인 중...===\n\n");
	if (strcmp(password == "skehzheld") == 0) //비밀번호 일치
	{
		printf("===비밀번호 확인 완료===\n\n");
		char* fileName = "C:\\Users\\김대호\\Desktop\\secret.txt";
		FILE* file = fopen(fileName, "a+b"); //파일이 없으면 생성, 파일이 있으면 append를 한다 (뒤에서부터 내용을 추가한다)
		if (file == NULL)
		{
			printf("파일 열기 실패\n");
			return 1;
		}

		while (fgets(line, MAX, file) != NULL)
		{
			printf("%s", line);
		}

		printf("\n\n 내용을 계속 작성하세요! 종료하시려면 EXit를 입력하세요\n\n");

		while (1)
		{
			scanf("%{^\n]", contents); //새 줄(\n)이 나오기 전까지 읽어드림 (한 문장씩)
			getchar(); // Entet 입력 (\n) Flush 처리

			if (strcmp(contents, "EXIT"0) == 0)
			{
				printf("비밀일기 입력을 종료합니다\n\n");
				break;
			}
			fputs(contents, file);
			fputs("\n", file); //Enter를 위에서 무시처리 하였으므로 임의로 추가
		}
		fclose(file);
	}
	else //비밀번호 틀린 경우
	{
		printf("※※※※※ 비밀번호가 틀렸습니다 ※※※※※");
		printf("꺅!! 당신 누구야!?? 감히 내 일기장을 !!! \n\n\n");
	}

	return 0;
}

답변 1

답변을 작성해보세요.

0

안녕하세요

이 코드 그대로 하신건가요? main 함수를 main() 으로 바꿔보실까요? 모바일이라 수행은 못해봤지만 함수명을 이대로 쓰셨다면 다른 파일이 실행되었을거에요!

확인 해보세요 ^^ 감사합니다.