如何在文件中读取,其中包含char, int和空白到链表



嗨,我有一个问题,当我读取文件中包含空白到链表

读取文件:

19, 11米48b 23问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;
}

输出:a 19,11 m 4 8 0

程序在读取文件时跳过空格。它停止读取文件。getline()函数将有助于读取,但我想单独存储char和int,因为这是一个链表项目。

文件应为二进制文件:

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写入文件。

相关内容

  • 没有找到相关文章

最新更新