본문 바로가기
플밍 공부

C언어 (기본입출력)

by 루미..1 2024. 1. 9.

 

<복습>
조건문과 반복문
-0이 아닌 수는 모두 참이다.
-모든 조건문, 반복문에서는 왠만해서는 무조건 괄호를 적용하세요.
-for문 혹은 while문은 얼마든지 중첩될 수 있습니다.
-for(;;)는 while(1)과 동일하게 무한루프로 동작합니다.
-break;를 이용하여 반복문을 즉시 빠져나올 수 있다. 


예를들면, 
while(1)
{
if (a ==1)
     break;
}

->a가 1이되는 순간에 반복이 정지가 되도록 break문을 사용하면 즉시 빠져나올 수 있다.

 

 

기본입출력

기본입출력이라는 것은 사용자와 컴퓨터와의 상호작용 그 자체를 의미합니다.

#include<stdio.h>

int main(void)
{

   int x;
   scanf("%d", &x);
   return 0;
}

 

c언어에서는 기본 입출력 함수를 이용하여 사용자와 상호작용할 수 있습니다. 대표적으로 scanf("%d",&x);라는 정수에 사용자에게 입력받은 값을 삽입한다는 의미의 코드입니다. 다만 사용자로부터 입력 받을 자료형에 따라서 %d, %c, %f, %lf 등의 다양한 문법을 사용해야 한다는 것에 유의해야 합니다. 그리고 반면에 프로그램에서 사용자에게 메시지를 출력할 때는 가장 대표적으로 printf();를 이용합니다. 물론 이들은 텍스트 기반의 입출력이며 나중에 GUI를 배우게 되면 사용자에게 글자 뿐만아니라 이미지도 보여줄 수 있습니다.

 

 

 

간단한 실습을 통해서 기본입출력에 대해 더 자세하게 배워보겠습니다.

scanf()와 printf()함수를 이용하여 다양한 프로그램을 작성해보겠습니다.

-간단한 계산기 프로그래을 개발해보자.

-정해진 개수의 정수를 더하는 프로그램을 개발해보자.

-특정한 단의 구구단을 출력하는 프로그램을 개발해보자.

 

#include<stdio.h>
int main()
{
char o;
int x, y;
while (1)
{
printf("수식을 입력하세요:");
scanf_s("%d %c %d", &x, &o,1, &y);
if (o == '+')
{
printf("%d %c %d = %d\n", x, o, y, x + y);
}
}

}



비주얼베이직으로 실행시 정상작동되는것을 확인함.

 

무한반복은 1을 이용합니다. 왜냐하면 1은 항상 참값에 해당하기 때문에 절대 break를 사용하지 않는 이상 탈출되지 않기 때문입니다.

 

 

위의 코드에서, 

scanf_s("%d %c %d", &x, &o,1, &y);

부분은  scanf가 오류가 나면 _s를 뒤에 붙여주면 됩니다.

(scanf_s) 혹시 이렇게 햇는데도 오류가 난다면, scanf_s("%d %c %d" , &x ,&a, 1, &y); 이렇게 해주면 됩니다.

c언어가 이것저것 바뀌면서 문자열이 아닌 문자만 입력한려 한다면 컴퓨터가 문자를 문자열로 받아들였는지 메모리 계산이 잘못되면서? 오류가 납니다. 그래서 &a 뒤에 1을 붙여줌으로써 문자형 a는 1의 메모리 값을 가집니다. 하고 알려줘야 합니다.

 

 

 

 

 

+도 있으니까 -, * , / , % 도 있어야 겠죠.

#include<stdio.h>
int main()
{
char o;
int x, y;
while (1)
{
printf("수식을 입력하세요:");
scanf_s("%d %c %d", &x, &o,1, &y);
if (o == '+')
{
printf("%d %c %d = %d\n", x, o, y, x + y);
}
else if (o == '-')
{
printf("%d %c %d = %d\n", x, o, y, x - y);
}
else if (o == '*')
{
printf("%d %c %d = %d\n", x, o, y, x * y);
}
else if (o == '/')
{
printf("%d %c %d = %d\n", x, o, y, x - y);
}
else if (o == '%')
{
printf("%d %c %d = %d\n", x, o, y, x % y);
}
else
{
printf("처리할 수 없는 연산자입니다.\n");
}
getchar();
printf("프로그램을 종료하시겠습니까?(y/n)");
scanf_s("%c", &o);
if (o == 'n' || o == 'N')
{
continue;
}
else if(o == 'y' || o == 'Y')
{
break;
}
else
{
printf("입력이 잘못되었습니다.");
}

}

}

 

이때 getchar(); 는 버퍼를 말하는데, 
엔터 또한 문자의 하나로 인식하기 때문에 엔터를 넣을 수 있는 getchar()를 넣으면 된다.

 

 

 

 

 

 

다음으로 해볼 실습은 정해진 개수만큼 정수를 더하는 프로그램을 만드는 것입니다.

 

#include<stdio.h>
int main()
{
int number, x, i, sum = 0;
printf("정수의 개수를 입력하세요. :");
scanf("%d", &number);
for (i = 0; i < number; i++)
{
printf("정수의 값을 입력하세요. :");
scanf("%d", &x);
sum += x;

}
printf("전체 정수의 값은: %d입니다.",sum);


}

정해진 개수를 입력받을 수 있도록 number라는 변수를 만들어주고, number변수 안에 해당 개수가 들어갈 수 있도록 해줍니다.

 

for (i = 0; i < number; i++)

i는 0부터 number만큼 1씩 더해가면서 반복문이 수행됩니다.

 

scanf를 이용해 x라는 변수 안에 정수의 값이 들어갈 수 있도록 해준 다음에, sum값에 x를 더해줍니다. 

 

 

 

 

 

 

 

 

 

 

간단한 실습을 하나 더 해보겠습니다.

이번에 해볼 실습은 구구단 프로그램입니다.

#include<stdio.h>
int main()
{
int x, i;
printf("정수를 입력하세요.:");
scanf_s("%d", &x);
for (i = 1; i <= 9; i++)
{
printf("%d X %d = %d\n", x, i, x * i);
}


}

 

 

 

 

 

 

 

 

'플밍 공부' 카테고리의 다른 글

c언어(사용자 정의 함수) 복습필요.  (2) 2024.01.10
c언어 3(자료형)  (0) 2024.01.08
C언어 1  (0) 2024.01.05