Я знаю, что на 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"
Он называется синтаксисом HEREDOC в PHP:
<?php $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD; ?>
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».
Многострочный строковый литерал?
В Windows вы храните длинный текст как ресурс или файл.
Вы можете сохранить его в Unixish, используя библиотеки интернационализации (I18). Хорошая хачка, чтобы написать строку в вашей программе, например printf( _("_xmenu_ %d, %d, %d"), 1, 2, 3)
а затем вы можете «перевести» _xmenu_
на английский язык, другие языки, которые вы хотите поддержать. Поскольку переводы хранятся в другом файле, вам не нужно постоянно смотреть на них, и их легко изменить без перекомпиляции.