[英]C++ Printing Vector Adding New Line
我有一个结构向量。
struct myStruct{
string text;
int num;
};
vector<myStruct> foo;
我正在尝试打印文本,后跟一个空格,然后是数字。 像这样:
foobar 5
但是当尝试使用打印我的矢量时
ofstream outputFile;
outputFile.open ("file.txt");
for(int i = 0; i < foo.size(); i++) {
outputFile << foo[x].text << " " << foo[x].num << endl;
}
它打印像
foobar
5
moretext
8
带有额外的换行符和空间。 我不知道如何摆脱它,并在同一行上打印它。 有什么建议么?
您可以检查foo [x] .text是否包含\\ r或\\ n。
“我正在使用getline(input,foo.text)。因此它应该丢弃换行符”
如果您的input
流具有Windows样式的换行符(CRLF),并且您正在unix上使用LF的程序,则std::getline()
在末尾添加回车符
您需要使用类似以下内容进行修整:
foo.text.erase(foo.text.find_last_not_of("\\n\\r")+1);
一种技巧是在将字符串传递给outputFile之前合并该字符串。
要么
您是否尝试过使用open()方法处理模式设置? 例如
outputFile.open(“ file.txt”,std :: ofstream :: out | std :: ofstream :: app);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.