일단 전체적으로 정리.
자바와 거의 비슷하다. ex) 문장 끝에 세미콜론 붙이기
그래서 다른 점만 잘 알아두고 넘어가면 될 듯
**크게 다른 점
1. scan하는 부분
자바 : import java.util.Scanner; -> 자바 스캐너 불러온 후
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
char a / String a = sc.next();....
하지만 C언어는 다르게 스캔받음.
#pragma warning (disable : 4996) //scanf 사용 관련 에러 무시. 4996번 에러 무시
int main(){
int a;
scanf("%d" , &a);
}
위와 같은 식으로 변수 선언 후 scanf 선언, 타입 선언 후 변수 앞에 & 붙여주기
두번째로 다른 점.
scanf("%d %d %d", &a, &b, &c);
// ↑ 한줄에 여러개 입력 가능, 여러줄에 걸쳐 입력도 가능
//scanf("~")의 공백의 의미는 print("~")의 공백과 다름.
double d1;
printf("실수 입력하셈 : ");
scanf("%lf", &d1); // scan에서 double 타입 입력받을때는 %lf 사용
//★%1f 아니다★
char name[30];
scanf ("%s" , name); //문자열 입력받을 때는 앞에 &붙이지 않음. %s는 공백이 없는 문자열 입력받음.
*gets() 사용하면 공백 포함 한 줄 입력가능하다.
Buffer
어떠한 데이터 저장공간. 키보드로 입력한 데이터가 버퍼에 차례로 쌓임.
그리고 그 버퍼에 있는 데이터를 CPU가 꺼내감(버퍼를 비운다).
줄바꿈 문자도 한 공간 차지함.
1. scanf %c : %c는 무조건 버퍼에 담겨있는 첫번째 글자만 빼간다.
2. scanf %d : %f=%d 버퍼 앞쪽의 공백(들) 먼저 제거 (여기서 말하는 공백이란 : 띄어쓰기, 엔터 , 탭...)
그리고 정수로 만들 수 있을만큼만 버터에서 빼간다.
ex) 버퍼에 '\n' , '1' , '0' , '\n' 이 담겨있는 상태에서 \n을 빼간 뒤, 정수로 만들 수 있는 1과 0을 빼간다. 그러면 현재 버퍼에는 줄바꿈 문자 하나만 남아있는 상태임. 그래서 getchar();를 써준다 : 버퍼에 남아있는 줄바꿈 문자 하나 지우기 위한 목적 .
*
'Language > C&C++' 카테고리의 다른 글
swea1959 (0) | 2021.11.01 |
---|---|
C프 문자열 입력 받을 때 주의할 점. (0) | 2021.10.28 |
SWEA task code (0) | 2021.10.11 |
SWEA task code 0 (0) | 2021.10.03 |
pointer (0) | 2021.08.05 |