C ++:从具有空字符的文件中读取

时间:2010-11-01 17:18:15

标签: c++ file fstream

我不得不从文件中读取数据中的数据,而不是分隔各个字段的空格,而是空字符。当从文件中获取整数时,它们被提取得很好但是使用字符串我只是从我的未初始化的字符数组中获得空白空间和垃圾。任何想法如何只是将字符提取到我的字符数组中忽略空字符。

编辑:

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 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

http://www.cplusplus.com/reference/iostream/istream/read/一次读取要缓冲的文件,然后从那里开始。

答案 3 :(得分:-1)

遍历字节并忽略空字符字节