\b
의 사용을 이해하기 위해 작은 C++ 프로그램을 작성했습니다. 이 프로그램은 아래에 주어진다 - 그래서C++에서 endl 및 n과 함께 백 스페이스 사용
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << "\b";
return 0;
}
,이 프로그램은 백 스페이스는 하나 개의 공간이 다시 커서를 이동하고 !
가 인쇄되지 않는 이유 buffer.So에서 삭제되지 때문에 원하는 출력 Hello World
.This이 발생하지 않아야 제공 ?
자, 그래서 다른 프로그램 -
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << "\b";
cout << "\nAnother Line\n";
return 0;
}
을 고려, 여기 출력은 - Hello World! Another Line
왜 백 스페이스가 여기에 작동하지 않습니다 무엇입니까? 개행은 버퍼를 플러시하지 않아야하므로 !
을 삭제해야합니다. 여기에 문제가 있습니까? endl
는 buffer.So, 플러시 반면 나는 경우 모두에서 \b
이후에 endl
또는 \n
추가 또한
, 출력 Hello World!
나누었다은, 개행 문자 출력이 모두 동일한 방법에 버퍼를 플러쉬하지 않습니다 그 사건들?
2 가지 가정이 잘못되었습니다. .1 .1. _ "백 스페이스는 커서를 한 칸 뒤로 이동하기 때문에 발생하지 않아야합니다 ..."_. 2. _ "하지만 개행 문자가 버퍼를 플러시하지 않습니다 ..."_ 후자는 구현에 따라 다릅니다. –
프로그램이 종료되면 "!"를 덮어 쓰는 프롬프트가 출력됩니다. 또한 프로그램이 종료 될 때'cout'은 flush된다. '\ b'의 작동 방식은'C++ '과 아무 관련이 없습니다. 'C++'은 당신이 콘솔에 알려주는 모든 문자를 (또는 다른 어떤 일이 일어날지라도) 보냅니다. 콘솔 작동 방식은 콘솔에 따라 다릅니다. – Galik
그래서 @ πάνταῥεῖ,'\ n'을 사용하여 버퍼를 플러시 할 수 있습니까? –