C ++ \ n在一个字符串中(不工作)

时间:2014-01-24 16:40:40

标签: c++ return line

我正在学习C ++。这是我的问题。

http://prntscr.com/2m5flm

我创建了一个可以读取类似它们的Prop文件的函数(可以使用函数设置文件的开始和结束标记,使用将返回字符串的函数搜索指定的标记(包含结果)。

这是main.cpp

#include <iostream>
#include "m_PFile_r.h"
using namespace std;

int main(int argc, const char * argv[])
{
    m_PFile_r k;
    k.open("prop.arg");
    k.imNotaFag(true);
    k.setOpenArg("$FILE_BEGIN$");
    k.setCloseArg("$FILE_END$");
    string lS;
    lS=k.getArg("launchSentence");
    cout << lS << endl;
    string menu;
    menu=k.getArg("progMenu");
    cout << menu;
    return 0;
}

我的问题是:为什么不打印\ n作为换行符?

谢谢:)

1 个答案:

答案 0 :(得分:4)

文件中有新的行字符,它们定义了行的结尾。当您在文件中输入换行符时,它不是作为换行符存储在该文件中,而是存储在两个单独的字符“\”和“n”中。因此,当您读入文件时,这些字符就像其他字符一样被读入。

你过度使这个问题复杂化了。如果您想向用户打印各种短语,只需将这些短语作为字符串变量包含在您的程序中。

String launchSentence = "This is the launch sentence.";

String progMenu = "Hit 1 For Add Hit 2 for Subtract";

然后可以用正常COUT&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; progMenu方法。

如果您对文本文件的目的是将所有可能的文本字符串保存在一个简单的位置,为什么不创建一个TextCommandPrompts.h,用String(C ++中的字符)变量填充它并将其包含在您的主文件中?

编辑 - 因为我还没有评论,我想回复一个 - 我认为无论哪个文本编辑器让他逐行写,都会搞砸了。就像在,它已经做了“\ n”魔术,并且当他在角色'\'和'n'中写道时发生了一些平凡的事情,并且他们仍然像常规角色一样。