[英]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.