2009-06-09 46 views
21

Tôi cần đảm bảo không có dòng nào trong mã của tôi vượt quá một độ dài nhất định.Làm cách nào để chia các dòng mã dài bằng C++?

Thông thường tôi tách các dòng có dấu phẩy hoặc dấu ngắt phù hợp khác.

Làm cách nào để tách dòng này thành 2?

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

Nếu tôi chỉ cần nhấn vào một nơi nào đó ở giữa nó không hoạt động.

Trả lời

36

Hai lựa chọn:

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

Hoặc:

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

Cách thứ hai hiệu quả hơn.

+10

Giải thích về trường hợp thứ hai sẽ có ích: ANSI C cho phép chuỗi ký tự được nối, như trong "foo" "bar" "baz" sẽ giống như "foobarbaz" – Hasturkun

+7

Được ghép bởi trình biên dịch, không trong thời gian chạy. –

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

hoặc

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

hoặc

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

Với đề xuất mạnh mẽ để tránh các biến thể có dấu gạch chéo ngược ở cuối dòng. Bạn đã không tận dụng cơ hội để hiển thị các biểu tượng bắt đầu và kết thúc nhận xét được chia thành nhiều dòng bằng các kết hợp đường chéo ngược dòng mới. : D –

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

này sẽ làm việc trên tất cả các C++, thời tiết đó là VS, hoặc trên Linux

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

Bạn đang nhúng thêm các tab hoặc dấu cách vào chuỗi. không phải là một ý tưởng hay. – Hasturkun

7

Chỉ cần tôi 2 Bobs đáng ...

tôi sẽ không quấn rằng dòng mã. Tôi để nó như một chuỗi dài lớn.

Quy ước 80 ký tự dựa trên các giới hạn của máy móc trong ngày. Thiết bị đầu cuối thường có 80 x 32 ký tự. Máy in dot-matrix giá rẻ + giấy tờ liên tục là 80 ký tự. Chỉ những người giàu có mới đủ khả năng thiết lập 132 ký tự. Và đoán xem ... những người có thể đủ khả năng bao bọc mã ở 132 ký tự, làm giảm đáng kể số lượng các dòng phải được bao bọc và tạo ra mã nguồn "sạch hơn".

Những ràng buộc đó không áp dụng ngay hôm nay. Trình soạn thảo văn bản của tôi hiển thị 150 cột bởi 52 dòng chuyển phát nhanh 10pt mới. Màn hình công việc của tôi sẽ hiển thị một cái gì đó giống như 400 của 65 (tôi chưa bao giờ thử nghiệm nó). Tôi đã không in một dòng mã nguồn trong nhiều năm ... và lần cuối cùng tôi làm như vậy là tôi có thể đọc nó một chiếc xe buýt trên đường về nhà, khi máy tính xách tay của tôi ở trên xe.

Biến hiện đại là nhiều hơn chi tiết hơn các ngôn ngữ "kiểu cũ" ... và điều này là tốt. Nếu bạn gọi bất cứ thứ gì BeanContextServicesSupport.BCSSServiceProvider trong Pascal, sếp của bạn sẽ bảo bạn hãy ngồi ở góc. Định danh Pascal chỉ có ý nghĩa đến 8 ký tự!

Vậy tại sao lại tồn tại với quy ước gây khó chịu và (với tôi) này? Nó làm cho rất ít ý nghĩa thực tế.

Vì vậy ... Tôi đã bao gồm "các dòng mã" ở 132 ký tự. Tôi không bận tâm để bọc "dòng văn bản" ở tất cả.

Xem thêm: The width of two horses arses!

Chúc mừng. Keith.

+12

Giới hạn 80 ký tự có nguồn gốc lịch sử, nhưng chủ yếu được giữ bởi vì mắt người tốt hơn trong việc theo dõi các dòng ngắn. – bayer

+0

@bayer đó là chính xác, nhưng thực thi lớp trình bày cho một thiết bị đầu ra duy nhất là một giải pháp nghèo hơn cho phép các thiết bị đầu ra để xác định chiều dài dòng dựa. – mikemaccana

+0

BTW, câu chuyện "hai con lừa" là một huyền thoại (mặc dù khá thú vị) - xem ví dụ https://www.snopes.com/history/american/gauge.asp; hoặc chỉ xem xét rằng đồng hồ đo đường sắt khác nhau rất nhiều (kiểm tra hệ thống tàu điện ngầm Boston!) – TextGeek

Các vấn đề liên quan