【发布时间】:2012-03-26 01:50:20
【问题描述】:
我有一个二进制搜索函数,可以在数组中搜索单词,但在搜索数组之前,我需要知道要搜索的单词。我编写了代码来要求用户输入,但程序打印出输入请求但不接受用户的任何内容。我当时认为这是一个缓冲区问题,因为我在程序中有一个初始 scanf,它从外部文件加载所有字符串并将它们放在一个数组中。在我最初的 scanf 之后,我尝试使用 fflush,并且我尝试用 get 重写第二个,正如前面的线程中所指出的那样。也许我没有正确实施它。这是我到目前为止所拥有的,任何关于为什么第二个 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;
}
【问题讨论】:
-
如果你想读取 line 的输入,使用读取一行的函数。否则,您正在阅读单词并离开行尾。