C ++ 컴파일에서 대부분의 오류 메시지를 생성하는 1 자 오타


51

C ++ 파일을 변경하면 (특히 템플릿 사용) 오류 페이지가 생성 될 수 있습니다. 이 콘테스트는 가장 큰 "벅의 뱅"이 무엇인지, 즉 소스 코드 (1 문자 추가)에 대한 가장 작은 변경으로 더 자세한 오류 출력입니다.

다른 언어는 제정신이므로 C ++ 및 gcc 버전 4.x로 제한됩니다.

규칙

  1. 원본 소스 파일은 gcc 4.9.2로 컴파일하여 오류없이 객체 코드를 컴파일해야합니다.

  2. 하나의 ASCII 문자가 소스 코드에 추가되어 오타가 발생하여 파일 크기가 1 바이트 증가합니다.

  3. 컴파일러는 기본 옵션으로 실행됩니다. 필요한 옵션은 같은 -c-std=c++11같은 옵션을 사용할 수 있습니다 -Wall되지 않습니다.

  4. 측정 항목

        number of bytes of generated error messages
        -----------------------------------------------------------------------
        (bytes of source code with typo) (length of filename passed to compiler)
    
  5. 답변은 http://ideone.com/ C ++ 4.9.2에서 검증됩니다 .

예:

파일 이름은 a.cpp5 바이트입니다.

int foo();

작업 컴파일

 gcc -c a.cpp

손상된 소스 코드 :

in t foo();

실패한 컴파일

$ gcc -c a.cpp
a.cpp:1:1: error: ‘in’ does not name a type
in t foo();
  ^
$ gcc -c a.cpp |& -c wc
64
$ wc -c a.cpp
12 a.cpp

점수 : 64/12/5 = 1.0666

더 나은 시도 :의 {사이에 삽입foo()

$ gcc -c a.cpp |& wc -c
497

새로운 점수 : 497/12/5 = 8.283

행운을 빕니다!

최신 정보

사람들이 재귀 구현을 무시하도록 권장합니다. 그것은 기술적으로이기는 것이지만 콘테스트의 정신에는 없습니다.

업데이트 2

많은 사람들이 언급했듯이, C 프리 프로세서가 허용되지 않으면 대회는 아마도 더 흥미 로웠을 것입니다. 따라서 전 처리기 명령을 전혀 사용하지 않는 솔루션을 게시하도록 사람들에게 권장하고 싶습니다. 그것은 #include허용되지 않기 때문에 헤더 파일을 전혀 사용하지 않음을 의미합니다 !

IDEONE을 사용하여 유효성을 검사하는 한 IDEONE 출력을 직접 사용하거나 소스 이름을로 사용 prog.cpp하거나 전역 검색 및 바꾸기 ( s/prog.cpp/a.cc/예 :)를 통해 IDEONE 출력을 실행하고 파일 이름을 직접 설정하십시오.

업데이트 3

사람들이 지적했듯이 Ideone은 너무 제한적이므로 객체 파일 생성뿐만 아니라 연결이 필요합니다. 이 콘테스트는 순전히 재미라는 이름이므로 솔직하게 점수를 얻는 데 사용한 것을 지정하십시오. ideone을 사용하거나 gcc 4.9.2의 가장 많은 바닐라 빌드 (모든 기본값)를 사용해야합니다. 이 콘테스트는 C ++ 오류 메시지의 끔찍함을 인식하기위한 것입니다.


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 . 또는 복제본으로 간주하거나 계산하지 않아야 할 사항에 대한 토론은 meta로 토론하십시오 .
Martin Ender 2016 년

ideone을 사용하여 유효성을 검사하는 세 가지 문제 : 소스 파일 이름을 "prog.cpp"로 강제하고 컴파일러 오류 출력을 64kB로 자르고 링크하여 추가 오류를 추가합니다. 따라서 좋은 유효성 검사 도구가 아닙니다.
Jason C

툴체인 테스트 우분투 저장소에서 GCC 4.9.2를 사용하고 있습니다.
nneonneo 2016 년

기본 옵션 은 무엇입니까 ? 내가 아는 한 컴파일 타임에 gcc의 기본 옵션을 구성 할 수 있습니다.
FUZxxl

2
기억을 되 살리다 : 1975 년경부터 물리 교사는 매년 "Fortran의 10 장 (펀칭) 펀치 카드에서 가장 많은 오류"경쟁을
벌였다

답변:


45

gcc 4.5.2, 점수 : 8579.15 (또는 파일 이름 "aC"의 경우 14367.49 , 나중에 업데이트 될 수 있음)

29 바이트의 원본 파일은 깨끗하게 컴파일됩니다 (a.cpp).

#if 0
#include"a.cpp"
#endif

수정 된 파일, 30 바이트 :

#iff 0
#include"a.cpp"
#endif

오류 :

$ gcc -c a.cpp 2>&1 | wc -c
1286873

점수:

1286873 / (30 * 5) = 8579.15

오류 출력의 머리와 꼬리 :

a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:1:2: error: invalid preprocessing directive #iff
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:

... And so on, backing out with second error after max include depth:

a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0,
                 from a.cpp:2:
a.cpp:3:2: error: #endif without #if
In file included from a.cpp:2:0:
a.cpp:3:2: error: #endif without #if
a.cpp:3:2: error: #endif without #if

참고 :
- 경우 .C유효한 확장으로 자격을 갖춘 후 1,206,869 / (28 * 3) = 14,367.49입니다 점수.
-Dennis가 제안한 두 번째 #include가 추가되면 파일 이름 "a.cpp", 점수는 80,797,292,934 / (46 * 5) = 351,292,578.97입니다.


2
질문은 문자를 바꾸지 말고 추가하는 것입니다.
데니스

3
@ 데니스 오 오. 알 겠어. 이 두 번째 편집 내용을보십시오. 당신의 의견은 변장의 축복이었습니다.
Jason C

1
@JasonC 나는 이것을 충분히 찬성 할 수 없다.
isaacg 2016 년

9
나는 당신이 두 번째를 추가하면 무한 점수를 주장 할 수 있다고 생각합니다 #include"a.cpp".
Dennis

3
트윗 담아 가기 나는 #include혼자서 두 번째를 추가하려고 생각하지 않았기 때문에 그대로 대답을 남길 것 입니다. 내일 아침에 깨어 났을 때 여전히 실행 중이라면, 그것은 무한합니다. 당신은 계속 게시 할 것입니다, ha (현재 5.1MB / 초로 파이핑 wc하고 있으므로 wc32 비트 카운터를 사용하는 경우 내 계산에 의해 약 13 분 안에 이상한 일이 발생할 수 있습니다.)
Jason C

31

gcc 4.9.2, 점수 : 222,898,664 663,393,783

이것은 @JasonC의 답변 에 크게 의존 하지만, 그는 이 개선에 대한 크레딧을 받고 싶지 않다고 말했습니다 .

아래 코드의 오류 출력 길이는 126,044,818,789 바이트입니다. 점수는 이론적으로 훨씬 높아야하며 (include 문 수가 증가함에 따라 무한대 경향이 있지만) include 문을 더 추가하면 실제로 감소합니다.

원본 파일 (37 바이트)

/*#
#include"w.cpp"
#include"w.cpp"*/
$ gcc -c w.cpp
$

수정 된 파일 (38 바이트)

/
*#
#include"w.cpp"
#include"w.cpp"*/
$ gcc -c w.cpp
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0:
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0,
                 from w.cpp:3:
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0,
                 from w.cpp:3,
                 from w.cpp:3:
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
In file included from w.cpp:3:0,
                 from w.cpp:3,
                 from w.cpp:3,
                 from w.cpp:3:
⋮
w.cpp:2:2: error: stray ‘#’ in program
 *#
  ^
w.cpp:3:0: error: #include nested too deeply
 #include"w.cpp"
 ^
w.cpp:4:0: warning: extra tokens at end of #include directive
 #include"w.cpp"*/
 ^
w.cpp:4:0: error: #include nested too deeply
w.cpp:2: confused by earlier errors, bailing out
The bug is not reproducible, so it is likely a hardware or OS problem.

6
현재 (또는 예측 가능한) 컴퓨터 기술을 사용하면 기술적으로 무한 출력을 생산할 수는 없습니다. 기본적으로 GCC의 #include중첩 제한은 200 수준이므로 재귀는 #include효과적으로 200 비트 이진 카운터가됩니다.
Ilmari Karonen

3
무한한 점수를 얻으려면 더 많은 포함 줄을 추가하십시오. 출력 크기가 코드보다 빠르게 커집니다.
jimmy23013

이것은 이전의 질문에 대한 답변 중 하나를 기반으로했을 수도 있습니다 .
피터 테일러

2
그것은 8 시작 몇 가지 큰 숫자와 더불어, 오늘 아침에 완료, 내가 실수로 번호를 복사하기 전에 창을 닫을 내가 최고니까. 다시 실행 중입니다.
Jason C

3
@JasonC 나는 그것을 실행했고 77,877,399,160 바이트의 출력을 얻었다. 예상보다 훨씬 덜 무한하므로 더 짧은 파일 이름으로 다시 실행합니다.
데니스

25

gcc, 4.9.2, 점수 : 22.2

원본 파일 : 0 바이트 (a.cpp)

깨끗한 컴파일 :

$ gcc -c a.cpp |& wc -c
0

수정 된 파일 :

(

오류 :

$ gcc -c a.cpp |& wc -c
111

점수

111/1/5 = 22.2


4
당신은 이미 이것을 무차별 처리 했습니까? 내 말은, 이것이 0 바이트 시작 파일에서 가장 높은 점수입니까?
토마스 웰러

나는 이것을 무차별하게하지 않았다. 방금 3 ~ 4 개의 다른 캐릭터를 시도했습니다. 이것은 사람들이 콘테스트에 관심을 갖기위한 시드 답변입니다.)
Mark Lakata

23

11,126.95 9,105.44 2,359.37 1,645.94 266.88 포인트

더 많은 전 처리기 남용! 이번에 우리는 표준 라이브러리를 울고 있습니다.

오타없이 :

#define typedf
#include<fstream>

오타로 :

#define typedef
#include<fstream>

오류 :

In file included from /usr/include/c++/4.9/iosfwd:39:0,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/c++/4.9/bits/stringfwd.h:62:33: error: aggregate ‘std::basic_string<char> std::string’ has incomplete type and cannot be defined
   typedef basic_string<char>    string;   
                                 ^
/usr/include/c++/4.9/bits/stringfwd.h:68:33: error: aggregate ‘std::basic_string<wchar_t> std::wstring’ has incomplete type and cannot be defined
   typedef basic_string<wchar_t> wstring;   
                                 ^
/usr/include/c++/4.9/bits/stringfwd.h:78:34: error: aggregate ‘std::basic_string<char16_t> std::u16string’ has incomplete type and cannot be defined
   typedef basic_string<char16_t> u16string; 
                                  ^
/usr/include/c++/4.9/bits/stringfwd.h:81:34: error: aggregate ‘std::basic_string<char32_t> std::u32string’ has incomplete type and cannot be defined
   typedef basic_string<char32_t> u32string; 
                                  ^
In file included from /usr/include/wchar.h:36:0,
                 from /usr/include/c++/4.9/cwchar:44,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/stdio.h:48:25: error: aggregate ‘_IO_FILE FILE’ has incomplete type and cannot be defined
 typedef struct _IO_FILE FILE;
                         ^
/usr/include/stdio.h:64:25: error: aggregate ‘_IO_FILE __FILE’ has incomplete type and cannot be defined
 typedef struct _IO_FILE __FILE;
                         ^
In file included from /usr/include/c++/4.9/cwchar:44:0,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/wchar.h:106:9: error: ‘__mbstate_t’ does not name a type
 typedef __mbstate_t mbstate_t;
         ^
/usr/include/wchar.h:151:38: error: ‘size_t’ is not a type
     const wchar_t *__restrict __src, size_t __n)
                                      ^
/usr/include/wchar.h:159:38: error: ‘size_t’ is not a type
     const wchar_t *__restrict __src, size_t __n)
                                      ^
/usr/include/wchar.h:166:63: error: ‘size_t’ is not a type
 extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
                                                               ^
/usr/include/wchar.h:176:4: error: ‘size_t’ is not a type
    size_t __n) __THROW;
    ^
In file included from /usr/include/wchar.h:180:0,
                 from /usr/include/c++/4.9/cwchar:44,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/xlocale.h:42:9: error: ‘__locale_t’ does not name a type
 typedef __locale_t locale_t;
         ^
In file included from /usr/include/c++/4.9/cwchar:44:0,
                 from /usr/include/c++/4.9/bits/postypes.h:40,
                 from /usr/include/c++/4.9/iosfwd:40,
                 from /usr/include/c++/4.9/ios:38,
                 from /usr/include/c++/4.9/istream:38,
                 from /usr/include/c++/4.9/fstream:38,
                 from a.C:2:
/usr/include/wchar.h:183:5: error: ‘__locale_t’ is not a type
     __locale_t __loc) __THROW;
     ^
/usr/include/wchar.h:186:6: error: ‘size_t’ is not a type
      size_t __n, __locale_t __loc) __THROW;
      ^
/usr/include/wchar.h:186:18: error: ‘__locale_t’ is not a type
      size_t __n, __locale_t __loc) __THROW;
                  ^
/usr/include/wchar.h:196:8: error: ‘size_t’ does not name a type
 extern size_t wcsxfrm (wchar_t *__restrict __s1,
        ^
/usr/include/wchar.h:207:9: error: ‘__locale_t’ is not a type
         __locale_t __loc) __THROW;
         ^
/usr/include/wchar.h:212:8: error: ‘size_t’ does not name a type
 extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
        ^
/usr/include/wchar.h:252:8: error: ‘size_t’ does not name a type
 extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
        ^
/usr/include/wchar.h:256:8: error: ‘size_t’ does not name a type
 extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
        ^
/usr/include/wchar.h:287:8: error: ‘size_t’ does not name a type
 extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;
        ^
/usr/include/wchar.h:306:8: error: ‘size_t’ does not name a type
 extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
        ^

[한조각]

/usr/include/c++/4.9/bits/fstream.tcc:934:35: error: ‘cur’ is not a member of ‘std::ios_base’
    __testvalid = this->seekoff(0, ios_base::cur, _M_mode)
                                   ^
/usr/include/c++/4.9/bits/fstream.tcc:934:50: error: ‘_M_mode’ was not declared in this scope
    __testvalid = this->seekoff(0, ios_base::cur, _M_mode)
                                                  ^
/usr/include/c++/4.9/bits/fstream.tcc:941:25: error: ‘_M_state_last’ was not declared in this scope
    + _M_codecvt->length(_M_state_last, _M_ext_buf,
                         ^
/usr/include/c++/4.9/bits/fstream.tcc:944:15: error: ‘streamsize’ does not name a type
         const streamsize __remainder = _M_ext_end - _M_ext_next;
               ^
/usr/include/c++/4.9/bits/fstream.tcc:945:13: error: ‘__remainder’ was not declared in this scope
         if (__remainder)
             ^
/usr/include/c++/4.9/bits/fstream.tcc:949:35: error: ‘__remainder’ was not declared in this scope
         _M_ext_end = _M_ext_buf + __remainder;
                                   ^
/usr/include/c++/4.9/bits/fstream.tcc:951:25: error: ‘_M_state_cur’ was not declared in this scope
         _M_state_last = _M_state_cur = _M_state_beg;
                         ^
/usr/include/c++/4.9/bits/fstream.tcc:951:40: error: ‘_M_state_beg’ was not declared in this scope
         _M_state_last = _M_state_cur = _M_state_beg;
                                        ^
/usr/include/c++/4.9/bits/fstream.tcc:960:2: error: ‘_M_codecvt’ was not declared in this scope
  _M_codecvt = _M_codecvt_tmp;
  ^
/usr/include/c++/4.9/bits/fstream.tcc:960:15: error: ‘_M_codecvt_tmp’ was not declared in this scope
  _M_codecvt = _M_codecvt_tmp;
               ^
/usr/include/c++/4.9/bits/fstream.tcc:962:2: error: ‘_M_codecvt’ was not declared in this scope
  _M_codecvt = 0;
  ^

내 우분투 컴퓨터에서 g++-4.9 -std=c++11 -c a.C1101568/33/3 = 11,126.95의 점수로 1,101,568 개의 영광스러운 바이트 오류를 ​​생성합니다.


7
모든 표준 헤더를 분석 #define하고 가장 많은 포인트 를 제공 하는 프로그램을 작성해야합니다 .
Jason C

1
당신은 대체하여 그것을 더 악화시킬 수 typedeft;. 이제는 모든 사용을 중단 할뿐만 아니라 typedef"t는 이름을 지정하지 않습니다"라는 오류가 발생합니다. 또는 %;"% 토큰 이전에 예상되지 않은 자격이없는 ID"를 생성합니다.
MSalters

1
#define typename *그리고 #define int class std더 많은 오류를 생성하는 것 같았다.
jimmy23013 2016 년

11

62.93 포인트

다음과 g++-4.8 -c -std=c++11 a.cc같이 컴파일 된 C ++ 메타 흑 마법

#include<memory>
template<int n>class B:std::unique_ptr<B<n-1>>{};template<>class B<0>{};B<-1>x;

언 골프 드 :

#include <memory>

template<int n>
class B: std::unique_ptr<B<n-1>> {};

template<>
class B<0> {};

B<-1>x;

G ++의 재귀 제한은 900이므로 31 비트 범위로 변경 B<1>하면 B<-1>흥미로운 효과가 있습니다.

  • 96 바이트의 코드 (최종 \n텍스트 편집기는 자동으로 추가 vim하지 않습니다).
  • 4 글자 파일 이름, a.cc
  • 24165 바이트의 오류 메시지가 잘립니다. 전체 오류 메시지에는 무려 1235889 바이트의 내용이 있습니다. -ftemplate-backtrace-limit=0스위치 가 필요합니다 . 그것은 또한 나를 위해 3185 점을 의미 할 것입니다!

std::unique_ptr STL과 고양이와 물건에 대한 시행 착오와 지식으로 발견되는 가장 긴 오류 메시지를 방출하는 템플릿 클래스 일뿐입니다.


2
그러나 ... 코드에 3 개가있는 @JasonC 만 6 개의 공백을 제거하려면 어떻게해야합니까!
Stefano Sanfilippo 2016 년

7

7.865 점수

엄밀히 말하면, 0 바이트 -Answer는 ideone.com이 오류없이 파일 컴파일을 거부하므로 정확하지 않습니다. 예제에서도 마찬가지입니다 int foo();-ideone.com에서 컴파일되지 않습니다 (평판이 없어서 주석을 달 수 없습니다 ...)

따라서 컴파일 할 수있는 가장 작은 프로그램 #includes은 다음과 같습니다.

int main(){}

이 코드를 다음 코드로 변경하면 409 바이트의 오류 코드 (ideone.com 출력에서 ​​prog.cpp의 이름을 a.cc로 바꾼 후)와 함께 실패합니다.

int main(){[}

409 / (13 * 4) = 7.865

주어진 예제가 주어진 규칙을 따르지 않기 때문에 질문을 적절히 업데이트하십시오 ...


1
전체적인 아이디어는 모든 종류의 구피입니다.
Jason C

나는 질문이 게시되고 첫 번째 답변이 제공된 아이디어 규칙에 동의했습니다 . 고양이는 이제 가방에서 벗어났습니다.
Mark Lakata

1

이름이 C 인 .cc

main(){constexprs a(){*(int*)0=f;}a(0)}

에러 코드:

.code.tio.cpp: In function ‘int main()’:
.code.tio.cpp:1:8: error: ‘constexprs’ was not declared in this scope
 main(){constexprs int a(f){*(int*)0=f;}a(0);}
        ^~~~~~~~~~
.code.tio.cpp:1:8: note: suggested alternative: ‘__cpp_constexpr’
 main(){constexprs int a(f){*(int*)0=f;}a(0);}
        ^~~~~~~~~~
        __cpp_constexpr
.code.tio.cpp:1:40: error: ‘a’ was not declared in this scope
 main(){constexprs int a(f){*(int*)0=f;}a(0);}

다시 안녕하세요! 오류가없는 원래 프로그램은 무엇입니까? (나는 그것을 가정 main(){}하지만 확실하지 않습니다) 또한 위의 답변이 개선되지 않았습니까? 이 답변을 확실히 유지할 수는 있지만 @StefanM의 답변에서 영감을 얻은 경우 언급해야합니다. 마지막으로 50 명의 담당자가 있으므로 어디에서나 댓글을 달 수 있습니다.
NoOneIsHereHere

나는 이것이 Stefan M.의 대답에 너무 가깝다고 생각합니다. 이 솔루션에 대한 권장 개선 사항으로 게시하겠습니다. 즉, 중복 답변이 허용됩니다. (물론, 당신이 독립적이 함께했다 가능하지만) 여기에 비록 원본을 넣어 수행하고 영감을 언급하십시오
HyperNeutrino

1

점수 12.xx (문자 삭제로 인한 오류)

규칙 2의 위반을 용서하십시오 (IMHO는 하나의 문자를 추가하거나 삭제하는 것이 규칙의 정신에있을 것입니다). 그러나 실수로 발생했습니다 (실제로 코드를 작성하는 동안 '의도적으로'모욕적 인 트릭을 사용하지 않습니다) -작동 및 오류 발생 코드는 간단하고 간단하므로 여기에 포함하기에 충분하다고 생각했습니다. 원본 코드

#include <iostream>
using namespace std;
int main ()
{
cout<<"test"<<endl;
}

오류를 생성하는 코드 (마지막 '<'가 삭제되어 비교보다 덜 보이지만 noooooooooooo ...)

#include <iostream>
using namespace std;
int main ()
{
cout<<"test"<endl;
}

ideone.com g ++ 4.3.2의 컴파일러 오류 메시지는 8241 바이트입니다.


1
제목이 "한 문자 오타"라고 표시되어 있기 때문에 도전의 정신에있는 것처럼 보이지만 삭제 또는 변경이 아닌 문자 만 추가 할 수 있다는 규칙 2를 따르지 않습니다.
조 왕
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.