我想在单独一行的链表中写下所有整数值,我有一个开始但有多个错误,我不知道从哪里开始。
struct ListNode {
int value;
struct ListNode * next;
};
int llist_save(LinkedList * list, char * file_name) {
ListNode *e = list->head;
FILE * fd = (file_name, "w");
while(e != NULL){
fprintf(fd, "%d\n", e->value);
e = e->next;
}
fclose(fd);
}
答案 0 :(得分:0)
使用fopen()
;尝试:
struct ListNode {
int value;
struct ListNode * next;
};
int llist_save(LinkedList * list, char * file_name) {
struct ListNode *e = list->head;
FILE * fd = fopen(file_name, "w");
while(e != NULL){
fprintf(fd, "%d\n", e->value);
e = e->next;
}
fclose(fd);
}
答案 1 :(得分:0)
首先,您需要查看以下几点:
声明结构时,基本上是定义自定义用户类型。
因此,每次要创建该类型的新变量时,都需要将保留字struture
放在结构名称之前。根据您的代码,这将是这样的:struct ListNode *e;
然后,您尝试向您的函数发送LinkedList
参数。但是,如果您发送struct ListNode *
参数,我觉得更容易,所以这样你就会知道"知道"列表中的第一个元素是什么。但是,您使用的方法也是有效的。
在谈论函数时,您声明了int
返回类型函数。在您的代码中,您没有放置return
语句。如果您不想返回值,只需将返回类型更改为void
即可。否则,只返回一个整数。
最后只需使用fopen
,这是一个可以帮助您在系统中打开文件的功能。该函数中的第一个参数是您要打开/创建的文件的名称,第二个参数是'方式' (技术上称为'模式')你想打开它。只需发送" w",这意味着写。
你说你想在一个sigle行中写入值。为此,请省略print语句中的\n
字符并打印' '
(空格字符)。
一些代码:
struct ListNode
{
int value;
struct ListNode * next;
};
void llist_save(LinkedList * list, char * file_name)
{
struct ListNode *e = list->head;
FILE * fd = fopen(file_name, "w");
while(e != NULL) {
fprintf(fd, "%d ", e->value);
e = e->next;
}
fclose(fd);
}
我的大脑现在不能很好地处理英语;抱歉。