从控制台成功将重定向文件读取到我的程序后,我要求用户输入一个单词,然后使用 scanf() 读取该单词。
我遇到的问题是 scanf() 立即读取垃圾字符,然后程序继续。它甚至不会暂停让用户在控制台中输入任何内容。当我不打开文件时,它不会发生。其他一切都完美无缺。可能是什么问题:
**我尝试了所有建议,但仍然无法正常工作。我做了一个新项目,只是为了让这部分工作,就是这样。忽略 scanf 只寻找一个字符,即使我要求一个词。我这样做只是为了看看程序是否真的会暂停并允许我输入一些东西,但事实并非如此。只是进入一些垃圾和程序结束。
main(){
int n,i;
char ch;
char line[80];
while(fgets(line, 80, stdin) != NULL){
for(i=0;i<80;i++){
ch=line[i];
if(ch=='\n'){
printf("%c",ch);
break;
}
else{
printf("%c",ch);
}
}
}
printf("Please enter a word: ");
scanf("%c",&ch);
}