我不能将一个新行添加到C++字符串
问题描述:
如何添加一个新行到一个C++字符串?我试图读取一个文件,但是当我试图追加'\ n'它不起作用。我不能将一个新行添加到C++字符串
std::string m_strFileData;
while(DataBegin != DataEnd) {
m_strFileData += *DataBegin;
m_strFileData += '\n';
DataBegin++;
}
答
这会在每个字符或字符串后添加一个换行符,具体取决于DataBegin的实际类型。你的问题不在于你给出的代码示例。如果给出预期的和实际的结果以及变量的数据类型,那将会更有用。
答
如果您有很多要处理的行,使用stringstream
可能会更有效。
ostringstream lines;
lines << "Line 1" << endl;
lines << "Line 2" << endl;
cout << lines.str(); // .str() is a string
输出:
Line 1
Line 2
答
只是一个猜测,但也许你应该改变字符的字符串:
m_strFileData += '\n';
是这样的:
m_strFileData += "\n";
+2
'+ ='运算符支持两种方式。 – 2010-11-08 21:22:16
答
对不起关于最近的答案,但我有一个类似的亲直到我意识到Visual Studio 2010 char*
visualiser忽略\r
和\n
字符。它们完全从它中省略。
注意:通过visualiser我的意思是当您将鼠标悬停在char*
(或string
)上时看到的内容。
答
试试这个:
ifstream inFile;
inFile.open(filename);
std::string entireString = "";
std::string line;
while (getline(inFile,line))
{
entireString.append(line);
entireString.append("\n");
}
你是什么意思 “它不工作” 吗?你的电脑会融化吗?你的狗喝你所有的啤酒吗?什么? – dreamlax 2010-11-08 21:12:51
如果您使用Visual Studio进行调试,则可能在调试器中看不到它。 – dalle 2010-11-08 21:15:20
@dalle - 好点,使用文本可视化工具来看所见即所得的版本 – 2010-11-08 21:42:54