"C언어 입력"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(다른 사용자 한 명의 중간 판 26개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개념==
==개념==
;C언어 입력 방법
;C언어 입력 방법
* scanf(스캔에프)는 C언어 표준 입력 함수
* C언어 표준 입력 함수인 scanf()를 통하여 입력 받음
※ printf 와 반대라 생각하면 됨
※ printf() 의 반대


==scanf==
==scanf==
<source lang="bash">
<syntaxhighlight lang="bash">
scanf("서식 문자열", &변수 [,&변수,...]);
scanf("서식 문자열", &변수 [,&변수,...]);
</source>
</syntaxhighlight>
* [[화이트스페이스 문자]]를 만나면 거기까지만 입력 받고 더이상 받지 않음 (주로 공백, 탭, 줄바꿈)
* 서식문자와 매칭이 되어야만 입력으로 받아 들임. 즉, '%c'는 문자, '%d'는 숫자로 매칭이 되어야 함
* 매칭이 되는 문자나 숫자를 받으면 1을 돌려주고, 매칭이 되지 않으면 0을 돌려줌. 에러 발생시 EOF(-1)를 돌려줌
 
==서식 문자열==
{| class='wikitable'
! 서식 문자 !! 내용
|-
| %d || 정수
|-
| %f || 실수(float)
|-
| %lf || 실수(double)
|-
| %c || 문자
|-
| %s || 문자열
|}


==숫자 입력 받기==
==숫자 입력 받기==
<source lang="C">
<syntaxhighlight lang="C">
#include <stdio.h>
#include <stdio.h>


17번째 줄: 35번째 줄:
     int a;
     int a;


     scanf("Please enter the number : %d", &a);
     scanf("%d", &a);


     printf("%d", a);
     printf("%d", a);
}
}
</source>
</syntaxhighlight>
:→ 변수 a에 숫자를 입력 받아 그 값을 출력해줌
:→ 변수 a에 숫자를 입력 받아 그 값을 출력해줌
==숫자 2개 입력 받기==
<syntaxhighlight lang="C">
#include <stdio.h>
void main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d, %d", a, b);
}
</syntaxhighlight>
==문자 입력==
<syntaxhighlight lang="C">
#include <stdio.h>
void main()
{
    char a;
    printf("Input : ");
    scanf("%c", &a);
    printf("Output : %c\n", a);
}
</syntaxhighlight>
* 실행
<syntaxhighlight lang="console">
john@zetawiki:/john/C$ ./a.out
Input : a
Output : a
</syntaxhighlight>
==문자열 입력==
<syntaxhighlight lang="C">
#include <stdio.h>
void main()
{
    char str[256];
    scanf("%s", &str[0]);
    printf("Output : %s\n", str);
}
</syntaxhighlight>
* 실행
<syntaxhighlight lang="console">
john@zetawiki:/john/C$ ./a.out
Hello!
Output : Hello!
</syntaxhighlight>
==화이트 스페이스==
* scarf()는 화이트 스페이스까지만 입력을 받음�
<syntaxhighlight lang='console'>
john@zetawiki:/john/C$ ./a.out
My name is John.
My
name
</syntaxhighlight>
:→'My'다음에 탭이 있어 배열 a에 'My'값이 들어가며 'name'다음에 공백이 있어 배열 b에 'name'이 들어가게됨
==같이 보기==
* [[C언어 아스키코드 입출력]]
[[분류:C]]

2020년 11월 2일 (월) 02:41 기준 최신판

1 개념[ | ]

C언어 입력 방법
  • C언어 표준 입력 함수인 scanf()를 통하여 입력 받음

※ printf() 의 반대

2 scanf[ | ]

scanf("서식 문자열", &변수 [,&변수,...]);
  • 화이트스페이스 문자를 만나면 거기까지만 입력 받고 더이상 받지 않음 (주로 공백, 탭, 줄바꿈)
  • 서식문자와 매칭이 되어야만 입력으로 받아 들임. 즉, '%c'는 문자, '%d'는 숫자로 매칭이 되어야 함
  • 매칭이 되는 문자나 숫자를 받으면 1을 돌려주고, 매칭이 되지 않으면 0을 돌려줌. 에러 발생시 EOF(-1)를 돌려줌

3 서식 문자열[ | ]

서식 문자 내용
%d 정수
%f 실수(float)
%lf 실수(double)
%c 문자
%s 문자열

4 숫자 입력 받기[ | ]

#include <stdio.h>

void main()
{
    int a;

    scanf("%d", &a);

    printf("%d", a);
}
→ 변수 a에 숫자를 입력 받아 그 값을 출력해줌

5 숫자 2개 입력 받기[ | ]

#include <stdio.h>

void main()
{
    int a, b;

    scanf("%d%d", &a, &b);

    printf("%d, %d", a, b);
}

6 문자 입력[ | ]

#include <stdio.h>

void main()
{
    char a;

    printf("Input : ");
    scanf("%c", &a);

    printf("Output : %c\n", a);
}
  • 실행
john@zetawiki:/john/C$ ./a.out
Input : a
Output : a

7 문자열 입력[ | ]

#include <stdio.h>

void main()
{
    char str[256];

    scanf("%s", &str[0]);

    printf("Output : %s\n", str);
}
  • 실행
john@zetawiki:/john/C$ ./a.out
Hello!
Output : Hello!

8 화이트 스페이스[ | ]

  • scarf()는 화이트 스페이스까지만 입력을 받음�
john@zetawiki:/john/C$ ./a.out 
My	name is John.
My
name
→'My'다음에 탭이 있어 배열 a에 'My'값이 들어가며 'name'다음에 공백이 있어 배열 b에 'name'이 들어가게됨

9 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}