2012-07-30 11 views
9

मैं ifstream::read उपयोग कर रहा हूँ एक फ़ाइल को पढ़ने के लिए,ifstream :: पढ़ता नहीं है कि यह कितने बाइट्स वास्तव में पढ़ता है?

ifstream ifs("a.txt"); 
char buf[1024]; 
ifs.read(buf, 1024); 

लेकिन a.txt के आकार 1000 bytes की तुलना में कम हो सकता है, तो कैसे मैं जानना चाहता हूँ कि कितने बाइट्स ifs से पढ़ा गया है चाहिए?

उत्तर

18

आप std::ifstream::gcount के साथ पिछले आपरेशन से निकाला पात्रों की राशि प्राप्त कर सकते हैं:

ifstream ifs("a.txt"); 
char buf[1024]; 
ifs.read(buf, 1024); 
size_t extracted = ifs.gcount(); 

या

ifstream ifs("a.txt"); 
char buf[1024]; 
size_t extracted = ifs.read(buf, 1024).gcount(); 

read(...) के बाद रिटर्न *this

संबंधित मुद्दे