본문 바로가기

c언어22

scanf의 반환값 scanf는 int 반환값이 있다. scanf로 입력 받은 문자의 개수가 바로 반환값이 된다. 예를 들어, scanf("%d", &a); 라고 한 경우 1을 반환하고 scanf("%d %d", &a, &b); 라고 한 경우 2를 반환한다. 그런데, scanf로 데이터를 읽다가 파일의 끝(EOF)에 도달한 뒤 읽기를 시도하면 -1을 반환한다. while(scanf("%d %d", &a, &b) != -1) { ... } //또는 while(scanf("%d %d", &a, &b) == 2) 라고 조건문을 작성해도 된다. ※ != -1로 하면 무한루프에 빠진다. 이유는 모르겟.. (위와 같이 while문의 조건으로 응용 가능하다. scanf로 파일의 끝에 도달할 때까지 while문을 반복하겠다는 의미, ==.. 2022. 9. 15.
잡다1 ● 자동 형변환, 강제 형변환 float a = 1.3; 과 같은 형태로 작성할 경우 a의 값을 double로 자동형변환 시켜버린다고 한다.(데이터가 손실되는걸 막기 위해?) 그래서 float로 강제형변환을 해줘야 하는데 float a =1.3f;라고 해주면 된다. ●백준 10926번 문제 ??! 라는 문자를 출력하라고 되어있는데 ??!를 작성하면 아래에 빨간 밑줄이 쳐지면서 trigraph ignored라고 뜬다. 문자의 조합으로 특정한 다른 문자를 나타내는 경우가 있었다고 한다(세 개의 문자의 조합으로 특정한 다른 하나의 문자를 나타내는 것을 '삼중자'라고 부른다고 한다.) 그런데 요즘엔 없어지는 추세라고 함. trigraph ignored는 삼중자 기능 무시(기능 off)라고 해석하면 될듯하다. 결.. 2022. 9. 15.