/*내가 출력하고 싶은 문장은 초콜릿이 먹고 싶어요*/
printf("똥이 먹고 싶어요\r초콜릿이\n); 이라고 했을때
"초콜릿이 싶어요" 가 출력되는데
이럴때 "먹고" 가 안날아 가게 하려면 어떻게 해야해?
printf("똥이\r초콜릿이 먹고 싶어요\n); 이렇게 하는건 뭔가 싫단 말이지
#include <stdio.h>
int main(void)
{
printf("어제먹은 밥값은 %d원 오늘먹은건 %d원 합해서 %d원 입니다\n", 25000, 5000, 25000 + 5000);
printf("저번달 금리는%.2lf였고 오늘은%.2lf였다\n", 3.45, 5.54);
printf("똥이\r초콜릿이 먹고 싶어요");
return 0;
}
오늘 배워서 한번 직접 만들어봤어 재밌네 이거
7개의 댓글
무분별한 사용은 차단될 수 있습니다.
눈팅만했지가입은처음인데
뭔 소리여 이게
코싸멘뚜
\r 을 내 멋대로 응용하고 싶은데 잘안된다고
나린제아
\r은 잘 안씀 \r\n 이런식으로만 쓰지
OS마다 달라서 + 한글은 유니코드라서 더 너가 원하는대로 안나올수가 있음
코싸멘뚜
하긴 이건 완전 기초를 설명하기위한 예제였던것 같으니 실제로 쓰는방법이랑은 많이 다르겠다
명의 애들엄마
그냥 `printf("초콜릿이 먹고 싶어요\n");` 라고 하는건 어때?
`\r`이 원래는 carriage return 이라고해서, 커서를 맨 앞으로 돌리는 건데 맥에서 이걸 뉴라인 캐릭터로 쓰는 바람에 플랫폼마다 `\r` 사용했을때 다르게 반응을 해서 헷갈릴꺼야
- `\n`: 유닉스에서 쓰는거
- `\r`: 옛날 맥이에서 쓰던거
- `\r\n`: 그냥 위에 두 개 짬뽕해서 윈도우에서 쓰는거
예를 들어서 너가 말한 `printf("똥이\r초콜릿이 먹고 싶어요\n");` 을 여기서 돌려보면, 둘 다 뉴라인으로 처리해서 두 줄을 출력 해 https://www.programiz.com/c-programming/online-compiler/
코싸멘뚜
어 진짜네?? 이게 또 다르구나 그냥 넘어가야겠네 잘 알려줘서 고마워!
잎샘바람
이유 간단하게 설명하자면 영어의 경우 아스키로 처리되며, 문자 하나당 1byte로 처리됨 한글의 경우 일반적으로 2byte
유니코드로 넘어가면 확장형이나 다른 옵션들도 있긴한데
여기선 그런게 있다 수준으로만 보고 넘어가자
사용하는 컴파일러 환경이 뭐인지에 따라서 다르긴한데
\r로 넘어가고나서 초콜릿이 총 4글자 8바이트임
똥이 먹고 얘는 공백 포함 5바이트
밀어버리고 초콜릿이 싶어요 만 나오게 되는거임