我有一个二进制搜索功能,这将在数组中的单词搜索,但在此之前我可以搜索数组我需要知道搜索什么词。我已经编写了代码,要求用户输入,但程序打印出输入请求,但不接受用户的任何内容。我认为这是一个缓冲区问题,因为我在程序中有一个初始scanf,它从外部文件加载所有字符串并将它们放入数组中。在我的初始scanf之后,我尝试过使用fflush,并且我尝试用gets来重写第二个,就像在前面的线程中指出的那样。也许我没有正确实施它。这是我到目前为止,关于为什么第二个scanf不工作的任何提示,赞赏。SCANF不接受第二个字符的字符串
#include "set.h"
#include "sortAndSearch.h"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(){
char names[320][30];
char str[30];
int i, j;
char *key;
int numOfWords;
char userWord[30];
Set set1, set2, set3;
//scan each char string into array names
for(i=0; scanf("%s", str) != EOF; i++){
strcpy(names[i], str);
}
//set number of words in file
numOfWords = i;
//sort names array
//bubbleSort(names, numOfWords);
//print out names, sorted
//for(i=0; i<numOfWords; i++){
// printf("%s\n", names[i]);
//}
printf("What word would you like to search for? ");
scanf("%s", userWord);
//addName2Set(set1, userWord);
return 0;
}
如果你想读取输入的*线*,使用函数读取一行。否则,您正在阅读该单词并将行结束。 – 2012-03-26 01:58:05