C ++: чтение из файла с нулевыми символами - PullRequest
4 голосов
/ 01 ноября 2010

К сожалению, для назначения мне нужно прочитать данные из файла, вместо пробелов, разделяющих различные поля, здесь есть нулевые символы.При извлечении целых чисел из файла они извлекаются нормально, однако со строками я просто получаю пробел и мусор из моего неинициализированного массива символов.Любые идеи о том, как просто извлечь символы в мой массив символов, игнорируя нулевые символы.

EDIT:

char fName[15],lName[15],pMethod[5],roomType[10],purpose[15];

int days, roomNum;

long guestID;

datafile>>guestID;
datafile.getline(fName,15,'\0');
datafile.getline(lName,15,'\0');

cout<<guestID<<endl;
cout<<fName<<endl;
cout<<lName<<endl;

- это код, который я сейчас использую, к сожалению, fName не получает ничего, кроме null, и lName получает строковое значение fName.Думал просто получить числа в виде строки и преобразовать их.

Ответы [ 4 ]

4 голосов
/ 01 ноября 2010

Используйте getline и передайте \0 (нулевой символ) в качестве разделителя.

4 голосов
/ 01 ноября 2010

std::getline имеет необязательный аргумент, который является символом-разделителем ('\n', по умолчанию).

0 голосов
/ 02 ноября 2010

http://www.cplusplus.com/reference/iostream/istream/read/ прочитать файл в буфер за один раз и затем продолжить оттуда.

0 голосов
/ 01 ноября 2010

Зацикливать байты и игнорировать нулевые байты символов,

...