gpt4 book ai didi

c++ - 用于加载文件的 while 循环不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:35 25 4
gpt4 key购买 nike

我正在尝试制作一个链接列表,该列表按照收到邮件的顺序从文本文件中添加电子邮件。我用来检索电子邮件信息和创建新节点的 while 循环甚至没有完成一次迭代(我用一个整数和另一个停止条件对其进行了测试)。我的 .txt 文件在用其他人的程序加载时可以正常工作,所以我认为我的 source_file.get 不工作?

int Classify::Load_email(char filename[]) {
ifstream source_file(filename);
char eof_prime;
if(!source_file) // Checks whether there is anything in the file
return 0;
if(!email_head) { // If there is no head, creates a new node for it to point to, and have tail point to it as well
email_head = new email_node;
email_tail = email_head;
email_tail->next = NULL;
}
source_file >> eof_prime; // Primes the eof function.

while(!(source_file.eof())); {
source_file.get(email_tail->email_data.sent, 50, '|');
source_file.get(email_tail->email_data.from, 50, '|');
source_file.get(email_tail->email_data.to, 50, '|');
source_file.get(email_tail->email_data.subject, 100, '|');
source_file.get(email_tail->email_data.contents, 200, '|');

// If source_file isn't eof, then create a new node, connect the nodes, then have tail point to it, make next NULL
if(!(source_file.eof())) {
email_tail->next = new email_node; // retaining the order emails were sent in, so always adding to the end
email_tail = email_tail->next;
email_tail->next = NULL;
}
} // end while loop
return 1;
};

最佳答案

由于 ; 错误放置,您的循环体为空

while(!(source_file.eof())); {
^

并且由于没有代码可以设置流的 eof 标志,它变成了一个无限循环,因此似乎后面的代码永远不会执行。

关于c++ - 用于加载文件的 while 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com