我正在用C++編寫一個工資單程序,需要能夠讀取文件中的行,進行計算,然後覆蓋文件中的讀取行。是否有一個函數/方法,我可以簡單地覆蓋特定的行,插入新的行,添加到現有文件的末尾?用C++覆蓋CSV文件中的一行
回答
沒有C++功能來在文本文件中「插入」或「刪除」文本。要做到這一點的唯一方法是讀取現有文本,並寫出修改後的文本。
如果新文本與舊文件放在同一個空間中,您只需要覆蓋現有文本 - 當然,您可以在.CSV文件中的逗號前/後添加額外的空格,沒有它成爲「領域」的一部分。但是如果新數據更長,肯定不會「覆蓋到位」。
使用ios_base::ate
修飾符添加到最後是相對容易的。但插入中間仍然涉及到基本閱讀,直到找到相關位置,然後,如果新文本更長,則必須先閱讀以下所有行,然後才能寫出新的文本。
所以如果我覆蓋特定的行它需要是相同長度的字符?或者它需要是相同長度的字符串(包括值/逗號) – user2611318
整行必須是完全相同的字符數,否則舊行中的某些「剩餘」將保留在文件中(如果新行較短),或下一行(的一部分)將被覆蓋(如果新行比舊行更長)。在典型情況下,我會將每行讀入一個數組,然後修改該數組中的相關行[換句話說'std :: vector'],並將其重新寫回。 [數組可能是每行一個字符串,或者每個元素類型的向量,它們是相同的,或者某種類型的結構 - 取決於您輸入的內容...] –
好的非常感謝,這有很大幫助。最後一個問題對我有很大幫助,可以根據我的程序中的行數創建數組嗎? – user2611318
- 1. 文件輸出覆蓋第一行 - C++
- 2. 如何覆蓋csv文件
- 3. 使用python覆蓋csv文件中的多行
- 4. 用File.CreateText覆蓋文件(C#)
- 5. 用cmd.exe + regexp覆蓋一個.CSV文件中的HTML
- 6. 使用Python的CSV模塊覆蓋csv文件中的特定行
- 7. 覆蓋與添加到C++中讀取csv文件的結尾
- 8. 我的代碼覆蓋.csv文件
- 9. 在不覆蓋第一行的情況下寫入.csv文件中的新行
- 10. 如何使用不同的csv文件覆蓋csv文件中的列
- 11. 用PHP覆蓋文件中的行
- 12. 從覆蓋率服務器提取覆蓋率.csv文件
- 13. PHP - CSV文件覆蓋基於UID
- 14. 讀取和覆蓋.CSV文件數據
- 15. CSV文件夾總是被覆蓋
- 16. C#:覆蓋MP3文件到另一個
- 17. 覆蓋0x00到一個文件C
- 18. 如何覆蓋C文件?
- 19. 如何覆蓋C文件?
- 20. CSV值覆蓋
- 21. 「覆蓋」文件中的重複值(C)
- 22. Rails的覆蓋CSV
- 23. 如何用Java中的新值覆蓋CSV文件
- 24. 如何使用jmeter覆蓋csv文件中的數據
- 25. 使用python覆蓋csv文件中的第一列和最後一列
- 26. 使用ofstream C++覆蓋一行
- 27. 通過覆蓋文件更新文件中的一行
- 28. 覆蓋txt文件中的單行
- 29. 運行cronjob覆蓋文件
- 30. C++覆蓋...覆蓋?
由於您想讀取和寫入某些行,您應該考慮讀取和寫入文本文件。在std庫中的fstream處理一個gander。 http://www.cplusplus.com/doc/tutorial/files/ –
這聽起來像是一種可以用腳本語言解決的問題。這會是一個可行的選擇嗎? – Gnosophilon
如果可能的話,我會建議您使用SQL數據庫 – Lochemage