Как я могу ограничить свой оператор printf до 80 символов на строку в коде в C ++? - PullRequest
4 голосов
/ 12 октября 2011

Мой профессор просит, чтобы мой код не превышал 80 символов в строке, но у меня есть несколько операторов printf, которые превышают этот предел.Есть ли способ разбить этот оператор на две или более строки без изменения вывода?

Пример по запросу:

printf("\n%-20s %-4d %-20s %-4d %-20s %-4d\n%-20s %-4d %-20s %-4d%-20s %-4d\n%-20s %-4d %-20s %-4d %-20s %-4d\n%-20s %-4d %-20s %-4d %-20s %-4d\n%-20s %-4d %-20s %-4d\n", "1 - Ones", ones, "2 - Twos", twos, "3 - Threes", threes, "4 - Fours", fours, "5 - Fives", fives, "6 - Sixes", sixes, "7 - Three of a Kind", threeOfAKind, "8 - Four of a Kind", fourOfAKind, "9 - Full House", fullHouse, "10 - Small Straight", smallStraight, "11 - Large Straight", largeStraight, "12 - Yahtzee", yahtzee, "13 - Chance", chance, "Total Score: ", score);

1 Ответ

6 голосов
/ 12 октября 2011

В C ++ вы можете разбивать буквальные строки следующим образом:

printf("This is a very long line. It has two sentences.\n");

в

printf("This is a very long line. "
       "It has two sentences.\n");

Любые строки в двойных кавычках, разделенные только пробелами, перед синтаксическим анализом объединяются в одну строку компилятором. Результирующая строка не содержит каких-либо дополнительных символов, за исключением того, что находится между каждой парой двойных кавычек (то есть без встроенной новой строки).

Для примера, включенного в ваше сообщение, я мог бы сделать следующее:

printf("\n%-20s %-4d %-20s %-4d %-20s %-4d\n"
       "%-20s %-4d %-20s %-4d%-20s %-4d\n"
       "%-20s %-4d %-20s %-4d %-20s %-4d\n"
       "%-20s %-4d %-20s %-4d %-20s %-4d\n"
       "%-20s %-4d %-20s %-4d\n",
       "1 - Ones", ones, "2 - Twos", twos, "3 - Threes", threes,
       "4 - Fours", fours, "5 - Fives", fives, "6 - Sixes", sixes,
       "7 - Three of a Kind", threeOfAKind,
           "8 - Four of a Kind", fourOfAKind,
           "9 - Full House", fullHouse,
       "10 - Small Straight", smallStraight,
           "11 - Large Straight", largeStraight,
           "12 - Yahtzee", yahtzee,
       "13 - Chance", chance, "Total Score: ", score);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...