Tag: 链接列表

C用户输入和链接列表

我试图从用户输入中获取一个字符串,然后将其与我之前在代码中创建的链接列表进行比较,并找到应该插入字符串的位置。 当用户输入任何内容并点击进入时停止循环。 我能够吸收字符串并找到要插入的位置,但我想要做的是循环直到用户输入空白输入。 这导致我的代码在某处破解,我不太清楚为什么。 我在我的代码中插入了断点来调试它,但我相信我遇到了fgets的问题。 任何帮助都会很棒。 当我说代码“中断”时,输出的样子是这样的: BREAK1: AAAA BREAK2 BREAK4 AAAA 0 BREAK5 字符串和位置是正确的,但它在多行上打印,然后继续循环而不重置。 以下是我的代码:: // NO FILE, SO INTAKE STRINGS /////////////////////////////////////////////////// /////////////////////////////////////////////////// else{ fgets(buff,BUFF_SIZE,stdin); buff[strlen(buff)] = ‘\0’; while (buff[0] != ‘\0’){ printf(“BREAK1: %s\n”, buff); // set curr = root node curr = root; printf(“BREAK2\n”); while (curr->next){ if (strcmp(buff, curr->stringDat) == 1){ insertPnt++; curr […]

wchar_t阅读

我在读取文件的函数中有错,但我不知道出了什么问题。 当符号超出ASCII表时,所有符号都被正确读取。 while ((c = fgetwc(file)) != WEOF) { if (c != L’\n’) { if (i == buf_length) { buf_length += BUF; wchar_t *rebuf = realloc(tmp, buf_length * sizeof(wchar_t)); if (rebuf == NULL) { free(tmp); tmp = NULL; buf_length = 0; return EALLOC; } else { tmp = rebuf; } } tmp[i] = (wchar_t)c; i++; […]

c链表 – 是否可以创建有效负载独立迭代器function?

所有,在我的应用程序中,我有许多正在创建的链接列表。 例如,一个(结构记录)保存具有数百个节点(文本行)的脚本文本,第二个类型链接列表(struct srch_results)保存搜索结果,使用strstr()搜索第一个列表。 应用程序中可以有多个列表。 问题是我发现自己为每个列表类型重新创建每个正向/反向迭代器,这基本上是复制代码并更改列表的结构类型。 例如,遍历struct记录的一组函数和遍历struct srch_results的一组函数是: // Simple structure to use as the base for depo double linked list struct record { char *line; int lineno; int linetype; struct record *prev; struct record *next; }; typedef struct record rec; // Simple structure to use as the base for search results double linked list struct […]

C:用于构建char *的链接列表的fgets用法

我是否错误地使用了fgets() ? 我正在尝试构建一个字符串链接列表( char * ),将每个新行添加到LL的末尾。 我正在从文件中读取这些行,但由于某种原因,每个行都被正在处理的当前行覆盖,只有在while循环中使用fgets() while ,add函数似乎正在正确接收每一行。 如果我在main()单独添加行,则没有问题。 这是一个示例输入文件: input.txt中: This life, which had been the tomb of his virtue and of his honour, is but a walking shadow; a poor player, that struts and frets his hour upon the stage, and then is heard no more: it is a tale told by […]