MFC 去掉CSV文件(指定文件路径)末尾的换行符
#include fstream #include string //去掉CSV文件指定文件路径末尾的换行符 BOOL RemoveTrailingNewlineFromCSV2(const CString strFilePath) { if (strFilePath.IsEmpty()) return FALSE; // 以二进制模式打开文件 std::fstream file(strFilePath, std::ios::in | std::ios::out | std::ios::binary); if (!file.is_open()) return FALSE; // 定位到文件末尾 file.seekg(0, std::ios::end); std::streampos fileSize file.tellg(); if (fileSize 0) { file.close(); return FALSE; } // 从后向前查找非换行符位置 std::streampos newPos fileSize; char ch; for (long i (long)fileSize - 1; i 0; i--) { file.seekg(i, std::ios::beg); file.read(ch, 1); if (ch \n || ch \r) { newPos i; } else { break; } } // 如果找到需要截断的位置 if (newPos fileSize) { file.close(); // 重新打开文件进行截断 std::ofstream outFile(strFilePath, std::ios::binary | std::ios::in); if (!outFile.is_open()) return FALSE; // 设置文件大小需要平台相关方法 FILE* pFile NULL; _tfopen_s(pFile, strFilePath, _T(rb)); if (pFile ! NULL) { _chsize_s(_fileno(pFile), (long)newPos); fclose(pFile); } } file.close(); return TRUE; }