4

不幸的是,我必须从文件中读取数据以进行分配,而不是使用空格分隔各个字段,而存在空字符。当从文件中提取整数时,它们被提取得很好,但是使用字符串我只是从我的未初始化字符数组中得到一个空格和垃圾。关于如何将字符提取到我的字符数组中而忽略空字符的任何想法。

编辑:

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 回答 4

4

std::getline有一个可选参数,它是分隔符('\n'默认情况下)。

于 2010-11-01T17:19:37.427 回答
4

使用getline并传递\0(空字符)作为分隔符。

于 2010-11-01T17:19:49.673 回答
0

http://www.cplusplus.com/reference/iostream/istream/read/一口气将文件读取到缓冲区,然后从那里继续。

于 2010-11-01T22:57:25.270 回答
-1

循环遍历字节并忽略空字符字节,

于 2010-11-01T17:21:17.740 回答