0

我有一个文件,我想打印它的内容,但编译器无法识别以下内容:“/ . \ ____ \ \ _ -. " //"/ /__ - /__\ _\_ \ \" " \ /\ _ \ . /_ _ _ // //" " //_ / \ \ _\ \ - __ " " _ \ __ / - /\ " " \ -.\ \ \ /__/ ." "\ \ _ \ \ -。\ _ " "- \ _ __\ _\ `__ \ _ \ " "。/ ___// / / // _ / "

这是我的代码:

int main()
{
  MenuText text;
  string test = "Champion";
  ofstream output("File.txt");
  text.save(output);
  fstream output ("File.txt");
  text.load("File.txt");//This is an error.
  text.print();


MenuText::MenuText()
{
    mText = "Default";

}
MenuText :: MenuText(string text)
{
mText = text;
}
void MenuText::print()
{
cout<< "Story= " << mText<< endl;
cout<< endl;
}
void MenuText::save(ofstream& outFile)
{
outFile<<   "/         .   \  \____    \\   \\    _ -. "
            //"/    /__        -    \/\_______\\__\\__\ \"
            "__\  /\   __   \     .      \/_______//__//"
            "__/\/__/ \  \   \_\  \       -   ________  "
            "___    ___  ______  \  \_____/     -  /\    "
            "__    \\   -.\    \\   ___\ \/_____/    ."
            "\  \  \__\   \\   \-.      \\   __\_        "
            "-   \ _\_______\\__\  `\___\\_____\           "
            ".     \/_______//__/    /___//_____/ "<< mText<< endl;
cout<< endl;
outFile<< endl;
}
void MenuText::load(ifstream& inFile)
{
string garbage;
inFile>> garbage >> mText;
}
4

4 回答 4

2

您需要避免出现\as \\。在你想要其中两个的地方,你需要同时逃脱 - \\\\

另请注意,第二行已被注释掉:

//"/    /__        -    \/\_______\\__\\__\ \"

关于什么:

        "/         .   \\  \\____    \\\\   \\\\    _ -. "
        "/    /__        -    \\/\\_______\\\\__\\\\__\\ \\"
        "__\\  /\\   __   \\     .      \\/_______//__//"
        "__/\\/__/ \\  \\   \\_\\  \\       -   ________  "
        "___    ___  ______  \\  \\_____/     -  /\\    "
        "__    \\\\   -.\\    \\\\   ___\\ \\/_____/    ."
        "\\  \\  \\__\\   \\\\   \\-.      \\\\   __\\_        "
        "-   \\ _\\_______\\\\__\\  `\\___\\\\_____\\           "
        ".     \\/_______//__/    /___//_____/ ";
于 2012-09-24T11:24:04.380 回答
1

\是文字字符串中的转义字符。如果要表示反斜杠,则需要为每次出现应用两次:

\ => \\
\\ => \\\\

"文字字符串中的字符也需要转义\"

于 2012-09-24T11:24:51.323 回答
1

编译器将任何\<any_symbol>对视为控制字符,例如\n换行符和\t制表符。因此每次使用反斜杠时,编译器都会尝试解释它,并将下一个符号作为控制字符。

为避免这种情况,您必须用另一个反斜杠转义每个反斜杠,因此每次要使用\时,都需要将其替换为\\. 当然,如果您想使用多个反斜杠,则需要对它们中的每一个进行转义。

于 2012-09-24T11:27:08.727 回答
0

假设“不识别”意味着类似于“替换某些字符”的内容,或者它包含非法转义序列:反斜杠\是某些特殊字符的前缀。您既不需要将其转义,也不需要\\使用 C++ 2011,您可以使用原始字符串。例如,"\\"abdR"(\)"都应该产生一个反斜杠。

于 2012-09-24T11:31:23.550 回答