inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C 프로그래밍 - 입문부터 게임 개발까지

프로젝트(후반전)

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

165

전호성

작성한 질문수 1

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;

}'''

c

답변 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

..

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

안녕하세요 7장 포인터에 관해 질문드립니다.

0

63

1

8-8 연장전 / 소스코드 공유해드려요. 참고하세요!

0

64

0

섹션6. 프로젝트 소스코드 올려드려요.

0

94

1

영상속에서 배운 코드들을 Git Repository에 올려두될까요?

0

79

1

경찰서 조서 프로젝트 문의

0

104

1

경찰관 조서 프로젝트

0

142

1

scanf

0

92

1

제대로 작성한것 같은데 빌드가 않됩니다.,

0

170

1

구문 오류 C2059

0

401

1

컴파일 시 fatal error C1010 발생

0

284

1

반환값이 없는 함수

0

215

1

반올림 되는건가요?

0

254

1

맥으로수강

0

193

1

10-2

0

257

1

질문이 있습니다

0

342

1

3-3 for 반복문 ++i 일때 질문입니다.

0

244

1

6-4(배열 파트 '문자 vs 문자열') sizeof 예제 다르게 출력되는 분들 참고하세요.

1

412

0

함수 선언과 정의를 동시에 해도 되나요?

0

1076

1

빌드오류가 있다고 나오고, 지정된 파일을 찾을 수 없다고 오류가 나옵니다..

0

404

1

안녕하세요 좋은 강의와 책 감사드립니다!! 다름이 아니라 명령어를 실행시켰을 때 저런식으로 나와서 질문드립니다

0

935

0

질문있습니다!

0

378

1

질문드립니다

0

387

1

scanf_s(" %d", &answer); 이후 바로 종료

0

312

0

질문 드립니다.

0

431

1