오류시 'pi'기호를 표시하는 컴파일러


103

Coliru 에서 일부 코드를 테스트하고 있었는데 이상한 출력이 나왔습니다 . 코드를 내려가 다음과 같은 간단한 코드로 재현 할 수 있습니다 .

int main()
{
    π
}

g ++의 출력 :

g ++에서 출력

그 소리:

clang의 출력

예를 들어 pi(주소없이) just을 사용 하면 예상되는 결과가 표시됩니다.

main.cpp:3:5: error: 'pi' was not declared in this scope
    pi;
    ^

g ++ 4.9.2 및 다른 사이트를 사용하여 내 컴퓨터에서 재현하려고 시도했지만 할 수 없었습니다.

이 사이트의 버그입니까, 이러한 컴파일러의 일부 구성입니까?

그리고 왜 연산자의 주소 ( &) 만 사용하면 이 기호가 표시됩니까?


23
넣으면 &tm;어떻게 되나요? ™이 표시됩니까? 그렇다면 출력이 HTML로 해석됩니다.
tadman

13
@tadman이 사이트 에 따르면 ™에는 HTML "이름"코드가없고 HTML 번호 코드 만 있습니다. & # 8482; 이것은 예상 된 출력을 제공합니다 .
사이먼

53
ahaha 이것은 재밌습니다
궤도의 Lightness Races

4
@ Random832 : 소스를 보는 것보다 DOM을 탐색 할 때 얻는 것입니다. (╯°□°)╯︵ ┻━┻
궤도의 경쾌한 경주

3
기록을 위해 여기에 언급 한 여러 사람이 Coliru 관리자를 알고 있습니다. 그는 이제 문제를 알고 있습니다. 올려 주셔서 감사합니다.
궤도의 경쾌함 경주

답변:


114

컴파일러의 출력이 제대로 이스케이프되지 않기 때문에 사이트의 버그입니다. 컴파일러는를 출력해야 π하지만 유효한 HTML이므로 표시되는 pi 기호가 생성됩니다.


이것을 보여주기 위해 coliru와 같은 곳에서 라이브 데모를 얻을 수 있습니까? : P
thecoshman

9
그리고 종종 잊혀진 탈출은 보안 문제로 판명됩니다. 따라서이를 발견 할 때마다 사이트 관리자에게 알리는 것이 정중합니다.
kasperd

50

ππ의 HTML 코드입니다. 누군가가 제대로 탈출하는 것을 잊은 것 같습니다.


8
700 및 골드 배지. 정말로 불쾌한 것은이 사람이 사용할 수도 있다는 것입니다 훨씬 더 나보다 그
강아지

3
@DavidRicherby-담당자가 과대 평가를 받고 음식을 식탁에 올려 놓지 않습니다.
dtech
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.