• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

밑의 질문에 대한 소스코드를 다시 첨부합니다!

18.09.22 13:30 작성 조회수 97

0

소스코드가 제대로 입력되지 않은 것 같아서 다시 올립니다!!

'''#define _CRT_SECURE_NO_WARNINGS

include

//비밀번호를 입력받아서 맞는경우: 비밀일기를 읽어와서 보여줌

//틀린경우: 경고메세지 표시 후 종료

define MAX 10000

int main(void)

{

char line[MAX];

char contents[MAX];

char password[20];

char c; // 비밀번호 입력시 키값 확인

printf("비밀일기에 오신것을 환영합니다!\n");

printf("비밀번호를 입력하세요!\n");

//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, "12345") == 0)

{

printf("==비밀번호 확인완료!==\n");

char * fileName = "c:\\file_practice\\secretdiary.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(); // enter입력 (\n): flush 처리

if (strcmp(contents, "EXIT") == 0)

{

printf("비밀일기 입력을 종료합니다\n\n");

break;

}

fputs(contents, file);

fputs("\n", file); // enter를 위에서 무시처리 하였으므로 임의로 추가

}

fclose(file);

}

else

{

printf(" ==== 비밀번호가 틀렸어요!====\n");

printf("꺅!! 당신 누구야! 남의 일기장을!!\n\n\n");

}

return 0;

}'''

답변 2

·

답변을 작성해보세요.

0

시스템상에서 글자를 2번씩 인지하는 경우라면 우선 대안으로는 글자를 2번씩 받도록 해서 그 중 하나는 버리도록 처리할 수 있겠네요, 코드상 입력 받는 부분을 아래와 같이 두번 사용하시면 처음 getch을 통해 받은 부분은 사용하지 않고 두번째 getch을 통해 받은 값만 사용할수 있을것 같습니다.
c = getch();
c = getch();
이렇게 똑같은 문장 두 번 사용해서 실행 해보시겠어요?

0

안녕하세요 나도코딩입니다.

아래 코드를 실행시키면 결과가 어떻게 나오나요?

#include<stdio.h>

int main(void)

{

char c;

while (1)

{

c = getch();

printf(입력값 : %c\n, c);

}

return 0;

}

정상적이라면 1234 입력시 아래와 같이 나와야 합니다. 그렇지 않고 다른 글자들이 함께 입력된다면 후속 작업이 필요할 수도 있겠네요 (해당하는 키를 찾아서 skip 처리를 한다던지 등이요)

입력값 : 1

입력값 : 2

입력값 : 3

입력값 : 4

..

실행해보시고 다시 글 남겨주세요 !