繁体   English   中英

C ++打印向量添加新行

[英]C++ Printing Vector Adding New Line

我有一个结构向量。

struct myStruct{
string text;
int num;
};

vector<myStruct> foo;

我正在尝试打印文本,后跟一个空格,然后是数字。 像这样:

foob​​ar 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM