簡體   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