반응형

안녕하세요.

오늘은 변수에 데이터를 입력과 출력에 대해 알아보도록 하겠습니다.

 

출력

데이터를 출력하기 위해서는 "printf"라는 함수를 사용합니다.

형식

printf("서식", 데이터);

서식은 다음과 같이 넣을 수 있습니다.

서식 데이터 타입 비고
%d int 부호 있는 10진수 정수
%u unsigned int 부호 없는 10진수 정수
%o int 8진수
%x int 16진수 정수 소문자
%X int 16진수 정수 대문자
%f float 실수
%lf double 실수
%e float, double 부동소수점 e(소문자) 방식 실수
%E float, double 부동소수점 E(대문자) 방식 실수
%c char 문자
%s,%S char*, char[] 문자열
%p void* 포인트형

데이터에는 변수 혹은 상수를 넣어서 출력을 합니다.

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
void main()
{
    int nNum = -10;
    float fNum = 12345.6789123f;
    double dbNum = 89789.123456f;
    char ch = 'H';
    char chString[20= "Hello World";
 
    printf("%%d %d\n", nNum);
    printf("%%u %u\n", nNum);
    printf("%%o %o\n", nNum);
    printf("%%x %x\n", nNum);
    printf("%%X %X\n", nNum);
    printf("%%f %f\n", fNum);
    printf("%%lf %lf\n", dbNum);
    printf("%%e %e\n", dbNum);
    printf("%%E %E\n", dbNum);
    printf("%%c %c\n", ch);
    printf("%%s %s\n", chString);
 
}
 
cs

 

 

입력

데이터를 입력받기 위해서는 "scanf"라는 함수를 사용합니다.

※ Visual Studio 사용시 
error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
이런 에러가 발생한다면 다음과 같이 하면 됩니다.

1. scanf대신 scanf_s를 사용합니다.

2. "#define _CRT_SECURE_NO_WARNINGS" 추가합니다.

 

형식

scanf("서식", &변수(변수주소));

서식은 다음과 같이 넣을 수 있습니다.

서식 데이터 타입 비고
%d int 부호 있는 10진수 정수
%u unsigned int 부호 없는 10진수 정수
%o int 8진수
%x int 16진수 정수 소문자
%f float 실수
%lf double 실수
%e float 부동소수점 e방식 실수
%c char 문자
%s,%S char*, char[] 문자열

변수는 scanf 함수는 서식에 맞춰서 변수주소로 접근해서 데이터를 입력을 합니다.

그로인해 변수앞에 변수의 주소값을 지칭하는 "&"를 추가합니다.

 

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
void main()
{
    int nNum1, nNum2, nNum3, nNum4;
    float fNum1, fNum2;
    double dbNum;
    char ch = 'H';
    char chString[20= "Hello World";
 
    
    printf("%%d : ");
    scanf("%d"&nNum1);
    while (getchar() != '\n');
 
    printf("%%u : ");
    scanf("%u"&nNum2);
    while (getchar() != '\n');
 
    printf("%%o : ");
    scanf("%o"&nNum3);
    while (getchar() != '\n');
 
    printf("%%x : ");
    scanf("%x"&nNum4);
    while (getchar() != '\n');
 
    printf("%%f : ");
    scanf("%f"&fNum1);
    while (getchar() != '\n');
 
    printf("%%lf : ");
    scanf("%lf"&dbNum);
    while (getchar() != '\n');
 
    printf("%%e : ");
    scanf("%e"&fNum2);
    while (getchar() != '\n');
 
    printf("%%c : ");
    scanf("%c"&ch);
    while (getchar() != '\n');
 
    printf("%%s : ");
    scanf("%s", chString); // 문자열은 chString 변수 자체가 주소이기 때문에 &를 제외합니다.
 
    printf("%%d %d\n", nNum1);
    printf("%%u %u\n", nNum2);
    printf("%%o %o\n", nNum3);
    printf("%%x %x\n", nNum4);
    printf("%%f %f\n", fNum1);
    printf("%%lf %lf\n", dbNum);
    printf("%%e %e\n", fNum2);
    printf("%%c %c\n", ch);
    printf("%%s %s\n", chString);
}
 
cs

 

※ "while (getchar() != '\n');" 코드 추가가 되는 이유

다음과 같이 입력후 엔터를 눌렀을 때 개행문자(\n)가 입력될 수 있기 때문에 추가합니다.

 

반응형
반응형

안녕하세요.

오늘은 저번 주에 변수와 상수에 이어서 배열에 대해 알아보도록 하겠습니다.

 

배열이란??

int형 변수 10개를 선언은 다음과 같이 할 수 있습니다.

int nNum1, nNum2, nNum3, nNum5, nNum6, nNum7, nNum8, nNum9, nNum10;

100개나 1000개를 선언하려면 하나씩 적기도 너무 번거롭고 관리도 어렵습니다.

이때 사용할 수 있는 게 배열입니다.

배열을 사용하게 되면 여러 개의 데이터를 수월하게 관리할 수 있게 됩니다.

형식

다음과 같이 초기화 하면서 배열 초기값을 넣을 수 있습니다.

데이터형 변수명[크기] = {배열1초기값, 배열2초기값, 배열3초기값...};

다른 방법으로 다음과 같이 초기화한 후 배열 값을 대입할 수도 있습니다.

데이터형 변수명[크기];

변수명[0] = 배열값;

변수명[1] = 배열 값;

 

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
 
void main()
{
    int arrNum[10];
 
    arrNum[0= 1;
    arrNum[1= 2;
    arrNum[2= 3;
    arrNum[3= 4;
    arrNum[4= 5;
    arrNum[5= 6;
    arrNum[6= 7;
    arrNum[7= 8;
    arrNum[8= 9;
    arrNum[9= 10;
 
    printf("arrNum[0] : %d\n", arrNum[0]);
    printf("arrNum[1] : %d\n", arrNum[1]);
    printf("arrNum[2] : %d\n", arrNum[2]);
    printf("arrNum[3] : %d\n", arrNum[3]);
    printf("arrNum[4] : %d\n", arrNum[4]);
    printf("arrNum[5] : %d\n", arrNum[5]);
    printf("arrNum[6] : %d\n", arrNum[6]);
    printf("arrNum[7] : %d\n", arrNum[7]);
    printf("arrNum[8] : %d\n", arrNum[8]);
    printf("arrNum[9] : %d\n", arrNum[9]);
}
 
cs

 

배열을 선언에 준 후 배열 값 0~9로 접근합니다.

그리고 배열을 "int arrNum[10];"으로 선언하면 메모리상에 연속으로 할당이 되게 됩니다.

 

 

다차원 배열

행, 열을 가진 데이터를 배열에 넣기 위해서는 다차원 배열을 이용할 수 있습니다.

예를 들면 학생들의 영어, 수학, 과학 성적을 배열에 넣는 경우에는 2차원 배열을 사용해서 넣을 수 있습니다.

형식

데이터형 변수명[행개수][열개수] = {배열1초기값, 배열2초기값, 배열3초기값...};

데이터형 변수명[행 개수][열개수];[행개수][열개수];

변수명[0][0] = 배열 값;

변수명[0][1] =배열 값;

변수명[1][0] = 배열 값;

변수명[1][1] = 배열 값;

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
 
void main()
{
    int arrNum[2][5];
 
    arrNum[0][0= 1;
    arrNum[0][1= 2;
    arrNum[0][2= 3;
    arrNum[0][3= 4;
    arrNum[0][4= 5;
    arrNum[1][0= 6;
    arrNum[1][1= 7;
    arrNum[1][2= 8;
    arrNum[1][3= 9;
    arrNum[1][4= 10;
    
 
    printf("arrNum[0][0] : %d\n", arrNum[0][0]);
    printf("arrNum[0][1] : %d\n", arrNum[0][1]);
    printf("arrNum[0][2] : %d\n", arrNum[0][2]);
    printf("arrNum[0][3] : %d\n", arrNum[0][3]);
    printf("arrNum[0][4] : %d\n", arrNum[0][4]);
    printf("arrNum[1][0] : %d\n", arrNum[1][0]);
    printf("arrNum[1][1] : %d\n", arrNum[1][1]);
    printf("arrNum[1][2] : %d\n", arrNum[1][2]);
    printf("arrNum[1][3] : %d\n", arrNum[1][3]);
    printf("arrNum[1][4] : %d\n", arrNum[1][4]);
}
 
cs

 

"int arrNum[2][5];"은 메모리상에는 다음과 같이 할당됩니다.

 

반응형
반응형

안녕하세요.

오늘은 C언어에 대해 간단히 알아본 뒤 가장 간단한 프로그램인 Hello World를 출력하는 프로그램을 만들어 보도록 하겠습니다.

 

C언어란??

1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 유닉스 운영 체제에서 사용하기 위하여 개발한 프로그래밍 언어가 C언어입니다.

많은 프로그래밍 언어에 기반에 되는 언어입니다, 

다른 언어들보다는 조금 어렵게 느껴질 수 있으나, C언어를 배우면 다른 언어를 배우기 조금더 수월하다고 생각이 듭니다.

절차적 프로그래밍 언어입니다.

 

개발툴 설치

C언어로 만든 코드를 컴파일할 수 있는 컴파일러가 필요합니다.

Dev-C++이나 Visual Studio(이하 VS)가 필요합니다.

다음 링크를 참조해주세요.

Dev-C++ 다운로드 & 설치

Visual Studio 2019 다운로드 및 설치

저는 아무래도 VS가 익숙하기 때문에 VS를 사용하여 강좌를 진행하도록 하겠습니다.

 

VS를 이용한 Hello World를 출력하는 프로그램 만들기

 

1. 설치한 VS를 실행합니다.

2. 새 프로젝트 만들기를 선택합니다.

3. 빈 프로젝트를 선택한 후 다음을 누릅니다.

4. 프로젝트이름을 적고, 저장될 경로를 지정합니다. 그 후 만들기 버튼을 누릅니다.

5. 프로젝트를 만들었으니, 이제는 코드를 입력할 파일을 만들겠습니다.

솔루션 탐색기에 소스 파일에 오른쪽 클릭 한 후 추가 - 새 항목을 선택합니다.

C++ 파일을 선택한 후 파일이름을 변경하고 난 뒤에 추가 버튼을 누릅니다.

8. Hello World를 출력하는 코드를 작성합니다.

1
2
3
4
5
6
#include <stdio.h>
 
void main()
{
    printf("Hello World");
}
cs

9. 컴파일을 합니다.

메뉴 - 빌드 - 컴파일을 누릅니다.(Ctrl+F7)

10. 빌드를 합니다.

메뉴 - 빌드 - HelloWorld빌드를 선택합니다.

11. 실행을 합니다.

메뉴 - 디버그 - 디버그하지 않고 시작을 누릅니다.

Ctrl+F5를 해도 됩니다.

사실 9(컴파일), 10(빌드)과정을 제외하고 바로 Ctrl+F5키를 누르면 빌드를 한 후 실행을 하게 됩니다.

반응형

+ Recent posts