C ++ derlemesinden çoğu hata iletisini üreten 1 karakter yazım hatası


51

C ++ dosyasında yapılan değişikliklerin, özellikle şablonlarla birlikte, hata sayfalarının oluşabileceği anlaşılıyor. Bu yarışma, en büyük "kazanın patlaması" nın ne olduğunu görmek, kaynak kodunda en küçük değişikliklerle (1 karakter ekleme) daha ayrıntılı hata çıktısı olduğunu görmektir.

Diğer diller daha mantıklı olduğundan, bu C ++ ve gcc sürüm 4.x ile sınırlı olacaktır.

kurallar

  1. Orijinal kaynak dosya, hatasız nesne koduna gcc 4.9.2 ile derlenmelidir.

  2. Bir yazım hatası oluşturmak için kaynak koduna bir ASCII karakteri eklenir ve dosya boyutu 1 bayt artar.

  3. Derleyici varsayılan seçeneklerle çalıştırılır. Gibi -cve gibi seçenekler gerekli -std=c++11, gibi seçenekler -Wall.

  4. Metrik

        number of bytes of generated error messages
        -----------------------------------------------------------------------
        (bytes of source code with typo) (length of filename passed to compiler)
    
  5. Cevaplar http://ideone.com/ C ++ 4.9.2 ile doğrulanacaktır .

Örnek:

Dosya adı, a.cpp5 bayt uzunluğundadır.

int foo();

Çalışma derleme

 gcc -c a.cpp

Bozuk kaynak kodu:

in t foo();

Derleme başarısız

$ 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

Puan: 64/12/5 = 1.0666

Daha iyi deneme: {parens arasına yerleştirinfoo()

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

Yeni skor: 497/12/5 = 8,283

İyi şanslar!

GÜNCELLEME

İnsanları özyinelemeli uygulamayı görmezden gelmeye teşvik ediyorum. Bu teknik olarak kazanır ancak yarışmanın ruhunda olmaz.

GÜNCELLEME 2

Birçok insanın belirttiği gibi, C ön-işlemcisine izin verilmediyse, yarışma muhtemelen daha ilginç olurdu. Bu yüzden insanları işlem öncesi komutlarını kullanmayan çözümler göndermeleri konusunda cesaretlendirmek istiyorum. Bu, #includeizin verilmediğinden hiçbir başlık dosyasının kullanılmaması anlamına gelir !

Doğrulamak için IDEONE kullanırken, doğrudan IDEONE çıkışını (ve kaynak adını prog.cpp) kullanmanıza izin verilir veya IDEONE çıkışını genel bir arama yoluyla çalıştırabilir ve değiştirebilir ( s/prog.cpp/a.cc/örneğin) ve yapabileceğinizi iddia etmiş olabilirsiniz. dosya adını doğrudan ayarlayın.

GÜNCELLEME 3

İnsanların belirttiği gibi, Ideone biraz kısıtlayıcıdır, sadece nesne dosyası oluşturma değil bağlantı gerektirir. Bu yarışma tamamen eğlence adına yapıldığı için lütfen dürüst olun ve puanınızı almak için ne kullandığınızı belirtin. Ya ideone kullanın ya da toplayabildiğiniz gibi gcc 4.9.2'deki en vanilya yapısını (varsayılan) kullanın. Yarışma, C ++ hata mesajlarının berbatlığına farkındalık kazandırmayı amaçlıyor.


Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı . Alternatif olarak, yinelenen olarak neyin sayılması veya neyin tartışılmaması gerektiği konusundaki tartışmalar için lütfen tartışmayı meta olarak alın .
Martin Ender

Doğrulamak için ideone kullanımıyla ilgili üç sorun: Kaynak dosya adını "prog.cpp" ye zorlar, derleyici hata çıktısını 64kB'ye kadar keser ve bağlantılar ekleyerek ekstra hatalar ekler. Bu yüzden iyi bir doğrulama aracı olmayacak.
Jason C,

Alet zinciri testi Ubuntu deposundan GCC 4.9.2'yi kullanıyorum.
nneonneo

Nelerdir varsayılan seçenekleri? Bildiğim kadarıyla derleme zamanında varsayılan gcc seçeneklerini yapılandırabilirsiniz.
FUZxxl

2
Anılarını geri getiriyor: 1975'lerden bu yana fizik öğretmenimiz yıllık "Fortran'ın 10 kartlı (elli) delikli kartından" en fazla hata yaptı ... yarışma ...
TripeHound

Yanıtlar:


45

gcc 4.5.2, Puan: 8579.15 (veya "aC" dosya adı için 14367.49 , daha sonra güncellenebilir)

Orijinal dosya, 29 bayt, temiz (a.cpp) derler:

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

Değiştirilmiş dosya, 30 bayt:

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

Hatalar:

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

Puan:

1286873 / (30 * 5) = 8579,15

Hata çıktısının başı ve kuyruğu:

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

Not:
- Eğer .Cbiter geçerli bir uzantısı olarak eleme sonra 1.206.869 / (28 * 3) = 14,367.49 olduğunu puanı.
- Dennis'in önerdiği ikinci #include eklendiğinde, dosya adı "a.cpp", puan 80,797,292,934 / (46 * 5) = 351,292,578,97 olur.


2
Soru, karakter yerine karakter eklemeyi söylüyor.
Dennis,

3
@Dennis Oh adamım. Bunu anladım. Bu ikinci düzenlemeyi izleyin. Yorumunuz kılık değiştirmiş bir nimetti.
Jason C,

1
@JasonC Bunu yeterince defa oylayamıyorum.
isaacg

9
Bir saniye eklerseniz sonsuz bir puan alabileceğinizi düşünüyorum #include"a.cpp".
Dennis,

3
@Dennis Whoa, güzel! Cevapları olduğu gibi bırakacağım çünkü #includekendi başıma bir saniye eklemeyi düşünmedim . Sonsuza kadar gelince ... yarın sabah kalktığımda hala çalışıyorsa, benim için yeterince sınırsız. Sizi habersiz tutacak (ha, şu anda 5,1 MB / sn'lik boru kullanıyor wcolsa da wc, 32 bitlik bir sayaç kullanıyorsanız, hesaplamalarıma göre yaklaşık 13 dakikada tuhaf bir şey olabilir.)
Jason C

31

gcc 4.9.2, skor: 222.898.664 663,393,783

Bu, @ JasonC'ın cevabına dayanıyor , ancak bu gelişme için kredi almak istemediğini söyledi .

Aşağıdaki kodun hata çıktısı 126.044,818,789 bayt uzunluğundadır. Puan teoride çok daha yüksek olmalıdır (ve içerme ifadelerinin sayısı arttıkça sonsuzluğa eğilimli olmalıdır), ancak pratikte daha fazla içerme ifadesi ekleyerek azalır.

Orijinal dosya (37 bayt)

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

Değiştirilmiş dosya (38 bayt)

/
*#
#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
Bu teknik olarak sonsuz çıktı üretmeyecektir , ancak mevcut (veya öngörülebilir) bilgisayar teknolojisiyle durduğunu görecek kadar uzun yaşayamazsınız. Temel olarak, GCC #include200 seviyelik bir yuvalanma sınırına sahiptir, böylece özyinelemeniz #includeetkili bir şekilde 200-bit ikili sayıcı haline gelir.
Ilmari Karonen

3
Sonsuz bir puan almak için sadece daha fazla satır ekleyin. Çıktı boyutu koddan daha hızlı büyür.
jimmy23013

Aynı şekilde daha önceki bir sorunun yanıtlarından birine dayanıyor olabilirdi .
Peter Taylor,

2
Bu yaptığımız 8'li ile başlayan bazı büyük sayıda, bu sabah bitirmek ve yanlışlıkla numarayı kopyalamadan önce pencereyi kapattı ben mükemmelim çünkü. Tekrar çalıştırıyorum.
Jason C,

3
@JasonC Ben de koştum ve 77,877,399,160 baytlık bir çıktı aldım. Beklediğimden çok daha az sonsuz, bu yüzden daha kısa bir dosya adıyla tekrar çalıştıracağım.
Dennis,

25

gcc, 4.9.2, Puan: 22.2

Orijinal dosya: 0 bayt (a.cpp)

Derler temiz:

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

Değiştirilmiş dosya:

(

Hatalar:

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

Puan

111/1/5 = 22.2


4
Bunu zaten kaba bir şekilde uyguladın mı? Demek istediğim, bu 0 baytlık bir başlangıç ​​dosyası için en yüksek puan mı?
Thomas Weller

Hayır bunu kaba kuvvet olarak yapmadım. Az önce 3 veya 4 farklı karakter denedim. Bu sadece yarışmaya ilgi duyan insanları çekecek bir
cevaptı

23

11,126.95 9,105.44 2,359.37 1,645.94 266.88 puan

Daha fazla işlemci kötüye kullanımı! Bu sefer standart kütüphaneyi ağlatıyoruz.

Yazım hatası olmadan:

#define typedf
#include<fstream>

Yazım hatası ile:

#define typedef
#include<fstream>

Hatalar:

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)
        ^

[SNIR]

/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;
  ^

Ubuntu makinemde g++-4.9 -std=c++11 -c a.C1101568/33/3 = 11,126.95 puan için 1.101.568 görkemli hata baytı üretiliyor.


7
Tüm std başlıklarını analiz etmek ve hangisinin #definesize en çok puan vereceğini belirlemek için bir program yazmalısınız .
Jason C

1
Sen değiştirerek daha da kötüleştirebilir typedeftarafından t;. Artık sadece her kullanımınızı typedefkırmakla kalmıyorsunuz , aynı zamanda "t türü belirtmiyor" hatalarını da alıyorsunuz. Veya %;"% belirteçten önce beklenen niteliksiz kimliği" üretmek.
MSalters

1
#define typename *ve #define int class stdçok daha fazla hata üretiyor gibiydi.
jimmy23013

11

62.93 puan

Sadece bazı C ++ meta kara büyü, ile derlendi g++-4.8 -c -std=c++11 a.cc:

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

Ungolfed:

#include <memory>

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

template<>
class B<0> {};

B<-1>x;

G ++ böylece değişen, 900 kendini yineleme sınırı vardır B<1>için B<-1>31 bitlik aralığı bir ... ilginç bir etkiye sahiptir ile.

  • 96 baytlık kod ( \nbazı metin editörlerinin otomatik olarak eklediği sonları saymaz vim).
  • 4 harfli dosya adı, a.cc
  • 24165 bayt hata mesajı ve kesildi. Tam bir hata mesajı, büyük miktarda 1235889 bayt içeriğe sahiptir. -ftemplate-backtrace-limit=0Anahtarı gerektirir . Aynı zamanda benim için 3185 puan anlamına gelir!

std::unique_ptr STL ve kediler ve eşyaların deneme yanılma ve bilgisi ile bulunan en uzun hata mesajını yaymayı başaran sadece şablon sınıfıdır.


2
Ama ... kodda sadece 3 tane varken 6 boşluktan nasıl kurtulabilirim, @JasonC!
Stefano Sanfilippo

7

Puan 7.865

Kesinlikle, 0 baytlık cevap doğru değil, çünkü ideone.com dosyayı hatasız derlemeyi reddedecektir. int foo();Aynısı örnek için de geçerlidir - ideone.com'da derlenmeyecektir (Eksik ünü nedeniyle yorum yapamıyorum ...)

Yani mümkün olmadan derlemek mümkün olan en küçük program #includesşudur:

int main(){}

Bunu aşağıdaki koda değiştirirseniz, 409 bayt hata kodu ile başarısız olur (prog.cpp ideone.com çıkışından a.cc olarak yeniden adlandırdıktan sonra):

int main(){[}

409 / (13 * 4) = 7.865

Lütfen soruyu uygun şekilde güncelleyin, verilen örnekler verilen kurallara uymadığından ...


1
Tüm ideone olayı her tür saçmalık.
Jason C,

Katılıyorum, soru gönderildikten ve ilk cevaplar verildikten sonra ideone kuralına uydum Kedi artık çantadan çıkmış durumda.
Mark Lakata

1

C adlı .cc

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

Hata kodu:

.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);}

Tekrar merhaba! Hata vermeyen orijinal program nedir? (Var olduğunu main(){}sanıyorum ama emin değilim) Ayrıca, bu sadece yukarıdaki cevabın bir gelişimi değil mi? Bu cevabı kesinlikle saklayabilmenize rağmen, @ StefanM'in cevabından ilham almışsa, bundan bahsetmelisiniz. Son olarak, şimdi 50 temsilciniz olduğu için, istediğiniz yere yorum yapabilirsiniz.
NoOneIsHere

Bunun Stefan M.'nin cevabına çok yakın olduğunu düşünüyorum; Bunu, bu çözüm için önerilen bir gelişme olarak kaydederim. Olduğu söyleniyor, yinelenen cevaplara izin verilir. Lütfen orjinali buraya
yazıp herhangi bir ilhamdan

1

Puan 12.xx (bir karakteri SİLME hatası)

Lütfen Kural 2'nin ihlal edilmesini bağışlayın (IMHO'nun bir karakteri silmek VEYA bir karakteri silmek kuralın özünde olur), ancak bu Gerçek Kod (TM) yazarken yanlışlıkla bana (bu nedenle 'kasten' kötü niyetli hileler kullanmaz) kullanmazdı. - Hem çalışan hem de hataya neden olan kod basit (basit) ve basit, bu yüzden buraya eklemek için yeterince temiz olduğunu düşündüm. Orijinal kod

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

Hatayı oluşturan kod (son '<' silindi, bu yüzden karşılaştırmadan daha az görünüyor, ancak noooooooooooo ...)

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

İdeone.com g ++ 4.3.2 içindeki 'sadece' 8241 byte derleyici hata mesajı.


1
Mücadelenin ruhuna uygun görünse bile (ünvan "bir karakter yazım hatası" dediği için), kural 2'ye uymaz, ki bu sadece bir karakter ekleyebileceğinizi , silme veya değiştirme yapamayacağınızı söyler .
Jo King,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.