我有以下簡單的代碼,讀取一個文本文件的內容轉換成字符數組:ifstream的讀取文本文件中錯誤的字符
const char* name = "test.txt";
std::cout << "Loading file " << name << std::endl;
std::ifstream file;
file.open(name);
file.seekg (0, std::ios::end);
int length = file.tellg();
std::cout << "Size: " << length << " bytes" << std::endl;
file.seekg (0, std::ios::beg);
char* buffer = new char[length];
file.read(buffer,length);
file.close();
std::cout.write(buffer,length);
然而,似乎ifstream的讀取錯誤的號碼從文件字符的:每行1個附加字符。我通過網絡搜索,它看起來像win7文本文件除了在每行的末尾換行符(\ n)有回車符號(\ r)。但是,流不知何故不會看到這些\ r,但仍使用文件中原始數量的符號,從文件末尾讀取其他字節。有沒有可能以某種方式解決這個問題?
如果有幫助:我使用MinGW編譯器和Windows 7 64位。
也許你可以使用'readsome'函數來看看你實際讀了多少? – Nim 2012-01-12 11:00:25