scanf("%d\n", &a); 가끔 이걸 쓸 때 빌드하고 터미널에서 값을 입력하면 이상하게도 그냥 무시되는 경우가 있었다. 그리고는 다시 문자나 문자열 입력을 요구하기도 한다.특히 연속으로 scanf 사용하는 경우에 문제가 발생하는 경우가 많다. scanf() 함수는 데이터를 입력 받을 때 버퍼를 이용하는데, 버퍼에 가져올 값이 없으면 사용자에게 데이터를 입력 받게 하기 위해 모니터 화면에 커서를 깜빡거리게 한다.그리고 사용자가 키보드로 데이터를 입력한 후 Enter를 치면, 그 때 입력한 데이터와 Enter값이 한꺼번에 키보드 버퍼에 들어가게 된다. * 버퍼 참고 예시 코드) #include int main(void) { int a; char b; scanf("%d", &a); scanf("%c",..
자바같은 경우는 변수를 스스로 초기화 시키지 않아도 지가 알아서 0으로 초기화 시키기 때문에 상관없지만, c언어에서는 변수 선언과 함께 그 전에 메모리에 있던 아무 의미 없는 쓰레기 값이 딸려 나올 수 있다. 변수 선언 시에 할당 받은 메모리 공간을 그 전에 다른 프로그램에서 사용하고 있었다면, 그 프로그램이 종료되었더라도 실제 메모리에 저장되었던 데이터가 남아 있기 때문에 변수를 초기화 하지 않으면 이런 현상이 발생한다고 한다. 백준 문제를 예로 들면 이와 같다. https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은..
VSCODE로 컴파일을 하다가 터미널에 갑자기 이런 식으로 뜨면서 넘어가지를 않았다. gcc.exe: error (경로): No such file or directory gcc.exe: fatal error: no input files compilation terminated. 읽어보니까 경로부분에 역슬래시()가 전부 다 빠져있었다. 예를 들면, C:\Users\aaa\Desktop\aaa\cmania\hell\hellc.exe라고 돼야 할 것이 C:UsersaaaDesktopaaacmaniahellhellc.exe 이런식으로 되어 있던 것이다. 문제를 해결하는데 이틀이나 걸렸다. 방법 git-bash에서 파일 경로 구분자를 /가 아니라 \로 사용하기 때문에 기본 터미널을 powershell로 바꾸면 해..