繁体   English   中英

如何将包含char,int和空格的文件读入链接列表

[英]how to read in file that contains char, int and white space into linked list

嗨,当我在链接列表中读取包含空格的文件时遇到问题

这是读入文件:

a 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;
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM