2009-06-09 10 views
21

Muszę się upewnić, że żadna z linii w moim kodzie nie przekracza pewnej długości.Jak podzielić długie wiersze kodu w C++?

Zazwyczaj oddzielaję linie, w których znajduje się przecinek lub inna odpowiednia przerwa.

Jak mogę oddzielić tę linię na 2?

cout<<"Error:This is a really long error message that exceeds the maximum permitted length.\n"; 

Jeśli po prostu naciśnij enter gdzieś w środku, to nie działa.

Odpowiedz

36

dwie opcje:

cout << "Error:This is a really long " 
<< "error message that exceeds " 
<< "the maximum permitted length.\n"; 

Albo:

cout << "Error:This is a really long " 
    "error message that exceeds " 
    "the maximum permitted length.\n"; 

Drugi jest bardziej wydajny.

+10

Objaśnienie drugiego przypadku byłoby przydatne: ANSI C umożliwia łączenie literałów łańcuchowych, tak jak w "foo" "bar" "baz" będzie taki sam jak "foobarbaz" – Hasturkun

+7

Konkatenowany przez kompilator, nie podczas uruchamiania. –

19
cout<<"Error:This is a really long error " 
"message that exceeds the maximum permitted length.\n"; 

lub

cout<<"Error:This is a really long error \ 
message that exceeds the maximum permitted length.\n"; 

lub

c\ 
o\ 
u\ 
t<<"Error:This is a really long error \ 
message that exceeds the maximum permitted length.\n"; 
+3

Z mocnym zaleceniem uniknięcia wariantów z odwróconym ukośnikiem na końcu linii. Nie skorzystałeś z okazji, aby pokazać symbole początku i końca komentarza podzielone na wiele linii za pomocą kombinacji ukośnik-ukośnik. : D –

8
cout << "Error:This is a really long error message " 
    "that does not exceed the maximum permitted length.\n"; 
0

To będzie działać na wszystkich C++, pogoda jest VS, lub Linux

cout<<"Error:This is a really long error message that \ 
    exceeds the maximum permitted length.\n"; 
+7

Osadzasz dodatkowe zakładki lub spacje w ciągu. niezbyt dobry pomysł. – Hasturkun

7

Tylko moje 2 Bobs warto ...

nie będę owijać tej linii kodu. Zostawiłbym to jako jeden wielki długi ciąg.

Konwencja 80 znaków została oparta na ograniczeniach maszyn dnia. Terminale, w których zazwyczaj występuje 80 na 32 znaki. Tanie drukarki igłowe z kartami o stałej liczbie arkuszy liczyły 80 znaków. Tylko bogaci ludzie mogli sobie pozwolić na konfigurację 132 znaków. I zgadnijcie, co ... ci, którzy mogli sobie na to pozwolić, zapakowali kod na 132 znaki, co radykalnie zmniejsza liczbę linii, które muszą być opakowane, i produkuje "czystszy" kod źródłowy.

Te ograniczenia nie obowiązują dzisiaj. Mój edytor tekstu wyświetla 150 kolumn po 52 linie 10-karatowego nowego. Moje monitory pracy wyświetlałyby około 400 na 65 (nigdy tego nie testowałem). Nie wydrukowałem ani jednego wiersza kodu źródłowego od lat ... a ostatnim razem robiłem tak, że mogłem odczytać jeden z autobusów w drodze do domu, kiedy mój laptop był na fritz.

Nowoczesne języki są dużo bardziej szczegółowe niż języki "starszego stylu" ... i to jest dobre. Jeśli zadzwonisz do jakiejś usługi BeanContextServicesSupport.BCSSServiceProvider w Pascal, twój szef kazałby ci usiąść w kącie. Identyfikatory Pascala, w których znaczące są tylko do 8 znaków!

Dlaczego więc utrzymujesz się z tą przestarzałą i (dla mnie) irytującą konwencją? Ma bardzo mało praktycznego sensu.

Więc ... pakuję "linie kodu" w 132 znaki. Nie zawracam sobie głowy owijaniem "linii tekstu".

Zobacz także: The width of two horses arses!

Cheers. Keith.

+12

Limit 80 znaków ma historyczne korzenie, ale jest głównie zachowywany, ponieważ ludzkie oko lepiej kontroluje krótkie linie. – bayer

+0

@bayer jest poprawny, ale wymuszanie warstwy prezentacji dla pojedynczego urządzenia wyjściowego jest gorszym rozwiązaniem niż zezwolenie urządzeniom wyjściowym na określenie długości linii. – mikemaccana

+0

BTW, historia "dwóch koni osłów" jest mitem (choć dość zabawnym) - patrz na przykład https://www.snopes.com/history/american/gauge.asp; lub po prostu uważaj, że wskaźniki kolejowe znacznie się różnią (sprawdź system metra w Bostonie!) – TextGeek

Powiązane problemy