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