J'essaye de créer une bannière pour une application sur Windows.La chaîne multi-lignes C++ ne fonctionne pas comme prévu
// C Libraries:
#include <string>
#include <iostream>
#include <algorithm>
// Namespaces:
using namespace std;
const char *BANNER[] = R"BANNER(
.-') _ .-')
( OO)) (OO).
,--. ,--./ '._ ,-.-') ,--. ,-.-') (_)---\_)
| | | | |'--...__)| |OO) | |.-') | |OO)/ _ |
| | | .-')'--. .--'| | \ | | OO) | | \\ :` `.
| |_|(OO) | | | |(_/ | |`-' | | |(_/ '..`''.)
| | | `-'/| | ,| |_.'(| '---.',| |_.'.-._) \
(' '-'(_.-' | | (_| | | |(_| | \ /
`-----' `--' `--' `------' `--' `-----')BANNER";
char* getCmdOption(char ** begin, char ** end, const std::string & option)
{
char ** itr = find(begin, end, option);
if (itr != end && ++itr != end)
{
return *itr;
}
return 0;
}
bool cmdOptionExists(char** begin, char** end, const std::string& option)
{
return find(begin, end, option) != end;
}
int main(int argc, char * argv[])
{
printf("%s\n", BANNER);
if(cmdOptionExists(argv, argv+argc, "-h"))
{
cout << "Help Menu";
}
if (cmdOptionExists(argv, argv + argc, "-a"))
{
cout << "Adobe";
}
return 0;
}
J'ai lu sur plusieurs threads et plusieurs sites Web que vous pouvez utiliser la syntaxe R"(<string here>)";
ou R"BANNER(<string here>)BANNER";
pour créer une chaîne de plusieurs lignes. Cependant, quand je suis arrivé à compiler ce code, je reçois les erreurs suivantes:
utilis.cpp(9) : error C2001: newline in constant
utilis.cpp(9) : error C2065: 'R' : undeclared identifier
utilis.cpp(9) : error C2143: syntax error : missing ';' before 'string'
utilis.cpp(9) : error C2059: syntax error : 'string'
utilis.cpp(10) : error C2015: too many characters in constant
utilis.cpp(10) : error C2059: syntax error : ')'
utilis.cpp(11) : error C2059: syntax error : ')'
utilis.cpp(12) : error C2015: too many characters in constant
utilis.cpp(12) : error C2059: syntax error : ')'
utilis.cpp(12) : warning C4129: '_' : unrecognized character escape sequence
utilis.cpp(12) : error C2001: newline in constant
utilis.cpp(12) : error C2015: too many characters in constant
utilis.cpp(13) : error C2015: too many characters in constant
utilis.cpp(13) : error C2059: syntax error : ')'
utilis.cpp(13) : error C2059: syntax error : ')'
utilis.cpp(14) : warning C4129: ' ' : unrecognized character escape sequence
utilis.cpp(14) : error C2001: newline in constant
utilis.cpp(14) : error C2015: too many characters in constant
utilis.cpp(15) : error C2018: unknown character '0x60'
utilis.cpp(15) : error C2015: too many characters in constant
utilis.cpp(15) : error C2018: unknown character '0x60'
utilis.cpp(15) : error C2137: empty character constant
utilis.cpp(16) : error C2018: unknown character '0x60'
utilis.cpp(16) : error C2015: too many characters in constant
utilis.cpp(17) : error C2015: too many characters in constant
utilis.cpp(17) : warning C4129: ' ' : unrecognized character escape sequence
utilis.cpp(17) : error C2001: newline in constant
utilis.cpp(17) : error C2015: too many characters in constant
utilis.cpp(18) : error C2018: unknown character '0x60'
utilis.cpp(18) : error C2015: too many characters in constant
utilis.cpp(18) : error C2018: unknown character '0x60'
utilis.cpp(18) : error C2015: too many characters in constant
utilis.cpp(18) : error C2018: unknown character '0x60'
utilis.cpp(18) : error C2015: too many characters in constant
utilis.cpp(18) : error C2001: newline in constant
utilis.cpp(21) : error C2143: syntax error : missing ')' before '{'
utilis.cpp(21) : error C2143: syntax error : missing ';' before '{'
utilis.cpp(21) : error C2447: '{' : missing function header (old-style formal list?)
Qu'est-ce que je fais mal au point où je ne peux pas créer une chaîne multi-ligne?
J'ai également essayé: cout << BANNER
et obtenir la même sortie. Pour moi l'erreur to many characters in constant
n'a pas de sens, puisque j'ai vu des bannières plus grandes que la mienne, par exemple voir here.
pouvez-vous donner un lien vers au moins un de ces fils de discussion ou plusieurs sites Web. Je n'en ai jamais entendu parler auparavant – user463035818
C'est une chaîne brute –
Utilisez les types C++, pourquoi n'utilisez-vous pas std :: string? – Papipone