How to Retrieve File bytes into a Char Array in C
要在不使用getline() 的情況下將文件位元組讀入char 數組,請考慮使用ifstream::read()。請依照下列步驟操作:
開啟檔案:
std::ifstream infile("C:\\MyFile.csv");
std::ifstream infile("C:\\MyFile.csv " );
std::ifstream infile("C:\\MyFile.csv");
infile.seekg(0, std::ios::end); size_t 長度 = infile.tellg(); infile.seekg(0, std::ios::beg);
std::ifstream infile("C:\\MyFile.csv");
if (length >大小(緩衝區)){ 長度 = sizeof (緩衝區); }
std::ifstream infile("C:\\MyFile.csv");
infile.read(buffer, length);
雖然eekg()和tellg()通常是可靠的,但在某些情況下它們可能不會總是提供準確的檔案大小。
要在一次操作中讀取整個文件並處理大文件,請使用std::vector std::istreambuf_iterator 可以提供更大的靈活性。size_t chars_read;
if (!(infile.read(buffer, sizeof(buffer)))) {
if (!infile.eof()) {
// Handle error during reading
}
}
chars_read = infile.gcount(); // Get actual number of bytes read
要考慮讀取過程中的潛在錯誤,請考慮以下方法:
size_t chars_read; if (!(infile.read(buffer, sizeof(buffer)))) { if (!infile.eof()) { // 處理讀取過程中的錯誤 } } chars_read = infile.gcount(); // 取得實際讀取的位元組數
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3