카테고리 없음

C언어 배우기 1

에푸 2022. 1. 28. 17:52

정보처리 전문학사를 진행하면서 C언어를 배우게 됐는데 그 과정에서 정리할 만한 것들을 몇 개 쓰려고 한다

 

짜잘한 거부터 몇 개 정리하고 짧은 사칙연산 계산프로그램 코드를 써보려 한다

 

1. Visual studio에서 가끔 마우스클릭을 했는데 커서가 더블클릭한 것처럼 잡혀서

ctrl + v하기 곤란해질 때가 있었다 

이 경우에는 insert키로 다시 돌리면 된다

내가 아무래도 백스페이스를 누르다가 insert키를 잘못 누른 듯하다

 

2. scanf_s 함수는 함수 하나에 입력값 하나만 쓰기를 권장한다

이번에 사칙연산 계산기를 만들다가 깨달았는데 

scanf_s 함수값 하나에 입력값 3개를 연달아 집어넣으려고 하니까

계속해서 오류가 나서 실행 자체가 안 됐다

알고보니 함수 하나에 입력값 여러 개를 넣으려고 하면

훨씬 더 복잡하게 코딩해야 하고 오류가 잘난다고 하더라

scanf_s("%d %c %d", &a, &b, &c); 

이런 식으로 넣으려고 하면 오류가 나지만

scanf_s("%d", &a);

scanf_s("%c", &b);

scanf_s("%d", &c);

이런 식으로 나눠서 넣으면 정상실행된다 

물론 warning은 떴지만 일단은 정상실행됐다

저렇게 다르게 썼지만 6+2를 넣으면 8이 되는 그런 출력값은 동일하다

 

3. 할당연산자와 산술연산자는 다르다

정~~말 초보적인 실수인데

while문에서 변수값을 조건에 넣고 변수값을 ++가 아니라 +3 같은 식으로 증가시키고 싶을 때 

단순히 변수값에 +3을 붙였다가 무한루프에 빠지는 에러가 발생했다 

그냥 +=으로 더해서 할당하는 연산자를 붙이면 된다 nail = nail + 5와 nail += 5는 같다

 

#include <stdio.h>

int main() {
int nail = 0;
int count = 0;

while (nail < 100) {
nail += 5; // 바로 이 부분. 변수값을 5씩 증가시켜서 100이 되면 while문을 탈출해야 되는데 nail + 5 이런 식으로 썼다  가 nail값이 0으로 고정되어 무한루프가 발생했다 변수값은 더했는데, 할당이 안 된 것이다
printf("달팽이가 이동한 거리 = %d m\n", nail);
(nail < 50) ? (nail -= 1) : (nail -= 2);
printf("달팽이가 이동하고 미끄러진 거리 = %d m\n", nail);
printf("===================\n");

count++;
}

printf("이동한 횟수 = %d회\n", count);

return 0;

 

4. Visual studio 단축키

ctrl + s로 저장하려다가 실수로 d를 눌렀는데, ctrl + d 명령어는 해당 줄에 있는 코드를 그대로 밑에 즉시 복사해준다

유용하게 쓸 거 같다

 

 

 

짜잘한 깨달음은 더 깨달은 게 생기면 더 업데이트할 예정.