当我在链接列表中包含空格的文件中读取时,我有问题
这是读入文件:
19岁 ,11 m 4 8 b 23 q 33这是我的代码
struct story
{
char letter;
int number;
story *next;
};
int main()
{
story *head = NULL; // list head pointer
ifstream inFile;
char letter;
int num;
// read file
inFile.open(FILENAME.c_str());
if(inFile.fail())
cout << "Error..." << endl;
while (inFile >> letter){
cout << letter << " " ;
inFile >> num ;
cout << num << " ";
}
inFile.close();
return 0;
}
输出:19,11 m 4 8 0
程序在读取文件时跳过空格。它停止阅读文件。 getline()函数有助于读取,但我想分别存储char和int,因为这是一个链表项目。
答案 0 :(得分:0)
文件应为二进制文件:
outFile.open(FILENAME.c_str(), ios::out | ios::binary);
inFile.open(FILENAME.c_str(), ios::in | ios::binary);
您应该读取/写入至少5个字节的记录,具体取决于对齐方式。 它很容易读/写整个结构。
读:
story *s=new story;
inFile.read(s,sizeof(s));
s->next=NULL;
使用write
编写文件。