#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int age;
// 문자열 입력 처리
char inputs[30];
printf("당신의 나이는?\n");
scanf("%d",&age);
printf("당신의 이름은?\n");
scanf("%s", inputs); //1.공백없이 입력! 2. &기호 사용하지 않음!
printf("입력하신 당신의 이름은 %s입니다.\n",inputs );
printf("입력하신 당신의 나이는 %d입니다.\n",age );
return 0;
}
이름을 입력할때, 홍 길동 이렇게 띄워서 입력하게되면 '홍'만 입력받게되어 출력할때 정말'홍'만 출력되는것을 볼 수 있다.
따라서 문자열을 배열에 입력할 때에는 적절한 함수 사용을 통해 입출력을 할 필요가 있다.
printf와 scanf의 조합이 아닌
gets_s와 puts의 방식으로 배열에 문자열을 저장하고 출력할 수 있다.
다음 예시를 통해 확인해보자.
#include <stdio.h>
int main(void)
{
char name[100];
char address[100];
printf("이름을 입력하시오: ");
gets_s(name , 100);
printf("현재 거주하는 주소를 입력하시오: ");
gets_s(address , 100);
puts(name );
puts(address );
return 0;
}
scanf와 달리 띄어쓰기에서 입력을 그만받지않고 하나의 문자열로 인식해 전체를 입력받는다.
다음 함수들을 예시를 통해 확인해보자.
// getchar()의 사용
#include <stdio.h>
int main(void)
{
int ch; // 정수형에 주의
while ((ch = getchar()) != EOF)
//if( (ch = getchar()) != EOF )
putchar(ch);
return 0;
}
#include <stdio.h>
#include <conio.h>
int main(void)
{
int ch;
while( (ch = _getch()) != 'q' )//버퍼를 사용하지 않는다. 에코도 없음!
//if( (ch = _getch()) != 'q') _putch(ch);
return 0;
}
용도에 맞는 것을 골라 사용
버퍼가 없이 바로 받으려면 _getch()를 사용한다.
'C' 카테고리의 다른 글
문자열 배열 연습 4 (0) | 2024.05.29 |
---|---|
문자열 배열 연습 3 (0) | 2024.05.29 |
문자열 배열 연습1 (0) | 2024.05.28 |
문자열 배열 출력 (0) | 2024.05.28 |
이차원 배열 인수전달 (0) | 2024.05.27 |