Как это называется, когда вы можете заполнить строку с помощью <<< и конечного разделителя? - PullRequest
4 голосов
/ 28 августа 2009

Я знаю, в C ++ и в PHP вы можете заполнить строку или файл жестко закодированным текстом. Если я правильно помню, это должно выглядеть так:

var <<< DELIMITER
   Menu for program X
   1.Add two numbers
   2.Substract two numbers
   3.Multiply two numbers
   Please pick an option from (0-3);
DELIMITER

Это может быть использовано для меню или текста, который остается неизменным независимо от заголовка. Но без необходимости:

foobar << "Menu for program X" << endl << "1.Add two numbers" << endl << "2.Substract two numbers"

Ответы [ 4 ]

18 голосов
/ 29 августа 2009

C ++ не имеет эквивалента синтаксису HEREDOC в PHP.

Однако вы можете сделать это в C ++:

cout << "   Menu for program X\n"
        "   1.Add two numbers\n"
        "   2.Substract two numbers\n"
        "   3.Multiply two numbers\n"
        "   Please pick an option from (0-3);" << endl;

Или это в C:

printf( "   Menu for program X\n"
        "   1.Add two numbers\n"
        "   2.Substract two numbers\n"
        "   3.Multiply two numbers\n"
        "   Please pick an option from (0-3);\n" );
fflush(stdout);

Что прямо эквивалентно синтаксису HEREDOC в PHP:

echo <<<EOT
   Menu for program X
   1.Add two numbers
   2.Substract two numbers
   3.Multiply two numbers
   Please pick an option from (0-3);
EOT;

Приведенный выше синтаксис для C и C ++ обрабатывается компилятором как одна длинная строка, соединяя их вместе. Он не оказывает никакого другого влияния на строковый литерал, поэтому необходимо использовать \ n.

4 голосов
/ 28 августа 2009

Это называется синтаксис HEREDOC в PHP:

<?php

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

?>
1 голос
/ 29 августа 2009

В Windows вы храните длинный текст как ресурс или как файл.

Вы можете сохранить его в Unixish, используя библиотеки интернационализации (I18). Полезно написать строку в вашей программе наподобие printf( _("_xmenu_ %d, %d, %d"), 1, 2, 3), и тогда вы сможете "перевести" _xmenu_ на английский, а также на любые другие языки, которые вы хотите поддерживать. Поскольку переводы хранятся в другом файле, вам не нужно постоянно просматривать их, и их легко изменить без перекомпиляции.

1 голос
/ 28 августа 2009

Многострочный строковый литерал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...