Mình đọc thấy hàm istream:: read (char* s, streamsize n) là lấy n kí tự trong stream lưu vào mảng trỏ bởi s. Đọc sách có một đoạn code sử dụng hàm này, nhiệm vụ của đoạn code này là đọc những record Person được lưu trong file và lưu nó vào một đối tượng person.
int ReadVariablePerson (istream & stream, Person & p)
{ // read a variable sized record from stream and store it in p
// if read fails, set p.LastName to empty string and return 0
short length;
stream . read ((char *)&length, sizeof(length));
if (stream . fail()){p.LastName[0]=0; return 0;}
char * buffer = new char[length+1];
stream . read (buffer, length);
buffer [length] = 0; // terminate buffer with null
istrstream strbuff (buffer);
strbuff >> p;
return 1;
}
không hiểu cái dòng code minh gach chân đó họ sử dụng như thế nào?
int ReadVariablePerson (istream & stream, Person & p)
{ // read a variable sized record from stream and store it in p
// if read fails, set p.LastName to empty string and return 0
short length;
stream . read ((char *)&length, sizeof(length));
if (stream . fail()){p.LastName[0]=0; return 0;}
char * buffer = new char[length+1];
stream . read (buffer, length);
buffer [length] = 0; // terminate buffer with null
istrstream strbuff (buffer);
strbuff >> p;
return 1;
}
không hiểu cái dòng code minh gach chân đó họ sử dụng như thế nào?
Comment