【发布时间】:2013-10-10 23:49:48
【问题描述】:
从控制台成功读取重定向文件到我的程序后,我要求用户输入一个单词,然后使用 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);
}
【问题讨论】:
-
请尝试在您的一些标点符号周围添加一些空格。您的代码几乎看起来像解密出错了...... :(