我有一个结构矢量。
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
带有额外的换行符和空格。我无法弄清楚如何摆脱它并在同一条线上打印它。有什么建议吗?
答案 0 :(得分:0)
您可以检查foo [x] .text是否包含\ r或\ n。
答案 1 :(得分:0)
“我正在使用getline(input,foo.text)。所以它应该丢弃换行符”
std::getline()
如果您的input
流具有Windows样式的换行符(CRLF),并且您在unix上使用了一个程序,其中包含LF
您需要使用以下内容修剪它:
foo.text.erase(foo.text.find_last_not_of("\n\r")+1);
答案 2 :(得分:0)
在将字符串传递给outputFile之前,一个hack会合并字符串。
或
您是否尝试过使用open()方法进行模式设置? 例如
outputFile.open(“file.txt”,std :: ofstream :: out | std :: ofstream :: app);