鱼C论坛

 找回密码
 立即注册
查看: 731|回复: 3

[已解决]使用scanf结合EOF判断出现问题

[复制链接]
发表于 2020-4-16 22:05:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想录入所有输入的单词,再倒序输出单词,代码如下:
#include<cstdio>
int main (){
        char word[80][80];
        int i=0;
        while(scanf("%s",word[i])!=EOF){
                i++;
        }
        for(int j=i-1;j>=0;j--){
                printf("%s",word[j]);
                if (j!=0){
                        printf(" ");
                }
        }
        return 0;
}
但是出现问题,调试时循环卡在while(第五行)不动了。我输入 hellow world here i come,但是只有hellow录入到了word[][]里。上传了调试时的截图。

最佳答案
2020-4-16 22:54:22
本帖最后由 耻思lhj 于 2020-4-16 22:55 编辑
#include<cstdio>
#include<string.h>
int main (){
        char word[80][80];
        int i=0;
        printf("输入字符串(exit退出输入):"); 
        while(scanf("%s",word[i])!=EOF){
                
                if(strcmp(word[i], "exit")==0 )
                {
                        break;
                }
                i++; 
        }
        for(int j=i-1;j>=0;j--){
                printf("%s",word[j]);
                if (j!=0){
                        printf(" ");
                }
        }
        return 0;
    }
输入(用空格隔开,最后回车)hello world here i come,会分别存入下标word[0]到[4],输入exit退出
{G){`8)F1KZKKJ@T22AZ%)T.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 22:16:50 From FishC Mobile | 显示全部楼层
本帖最后由 耻思lhj 于 2020-4-16 22:26 编辑

因为scanf函数遇到空格自动结束,还有你这个while是死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-16 22:54:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 耻思lhj 于 2020-4-16 22:55 编辑
#include<cstdio>
#include<string.h>
int main (){
        char word[80][80];
        int i=0;
        printf("输入字符串(exit退出输入):"); 
        while(scanf("%s",word[i])!=EOF){
                
                if(strcmp(word[i], "exit")==0 )
                {
                        break;
                }
                i++; 
        }
        for(int j=i-1;j>=0;j--){
                printf("%s",word[j]);
                if (j!=0){
                        printf(" ");
                }
        }
        return 0;
    }
输入(用空格隔开,最后回车)hello world here i come,会分别存入下标word[0]到[4],输入exit退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-17 20:55:53 | 显示全部楼层
耻思lhj 发表于 2020-4-16 22:54
输入(用空格隔开,最后回车)hello world here i come,会分别存入下标word[0]到[4],输入exit退出

好像在我的源代码里,输入ctrl+z就可以结束输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表