كيفية استرداد بايتات الملف إلى مصفوفة Char في C
لقراءة بايتات الملف في مصفوفة char دون استخدام getline()، فكر في باستخدام ifstream::read(). اتبع الخطوات التالية:
افتح الملف:
std::ifstream infile("C:\\MyFile.csv");
الحصول على طول الملف:
infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg);infile.seekg(0, std::ios::end);
size_t length = infile.tellg();
infile.seekg(0, std::ios::beg);
if (length > حجم (المخزن المؤقت)) { الطول = الحجم (المخزن المؤقت)؛
if (length > sizeof (buffer)) {
length = sizeof (buffer);
}
infile.read(buffer, length);
infile.read(buffer, length);
يوصى بفتح الملف في الوضع الثنائي (على سبيل المثال، باستخدام std::ios_base::binary) للتعامل الدقيق مع البايت.
على الرغم من أن Seekg() وtellg() يمكن الاعتماد عليهما بشكل عام، إلا أنهما قد لا يوفران دائمًا الحجم الدقيق للملف في بعض الحالات.لحساب الأخطاء المحتملة أثناء القراءة، فكر في النهج التالي:
size_t chars_read؛ إذا (!(infile.read(buffer, sizeof(buffer)))) { إذا (!infile.eof()) { // التعامل مع الخطأ أثناء القراءة } } chars_read = infile.gcount(); // احصل على العدد الفعلي للبايتات المقروءةتنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3