我试图编写一个从文本文件读取到链表的程序
这是列表结构。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct Video {
char video_name[1024]; // video name
int ranking; // Number of viewer hits
char url[1024]; // URL
Video *next; // pointer to Video structure
} *head = NULL; // EMPTY linked list
这是读入的代码:
void load()
{
struct Video *temp;
temp = (Video*)malloc(sizeof(Video)); //allocate space for node
temp = head;
ifstream rankFile ("Ranking.dbm");
if (rankFile.is_open())
{
while ( rankFile.good() )
{
cin.getline(rankFile, temp->video_name, "\n");
cin.getline(rankFile, temp->ranking, "\n");
cin.getline(rankFile, temp->url, "\n");
temp = temp->next;
}
myfile.close();
}
else cout << "Unable to open file";
return ;
}
它正在从如下所示的文本文件中读取Ranking.dbm
:
bagheera
20
bagheera.com
sushi
60
sushi.com
wicket
99
wicket.com
teek
100
teek.com
但是我收到一条错误消息:在我从文件中读取的Invalid conversion from void* to char*
所有 3 条语句中。cin.getline()
我需要能够从我的文件 () 中逐行读取Ranking.dbm
并将每组 3 行存储到temp->video_name
,temp->ranking
然后temp->url
创建一个新节点并保存接下来的 3 行......依此类推,直到我读入文件中的所有内容。
我怎样才能做到这一点?我是以完全错误的方式解决这个问题还是这只是一个语法错误?我仍然掌握 C++ 的窍门:/