鱼C论坛

 找回密码
 立即注册
查看: 1068|回复: 1

[已解决]我这有个代码在dev里运行输出不起来,在vs code里可以是为什么

[复制链接]
发表于 2020-6-4 10:54:31 | 显示全部楼层 |阅读模式

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

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

x
/*从输入中获取n个字符,在读到第一个空白、制表符、换行符停止*/
#include <stdio.h>
#define SIZE 81
char * q(char *a,int n);
int main(void){
        char a[SIZE];
        int n;
        scanf("%d",&n);
        q(a,n);
        puts(a);
        return 0;
}
char * q(char *a,int n){
        char *b;
        b=a;
        for(;a<a+n;a++){
                *a=getchar();
                if(*a==' '||*a=='\n'||*a=='\t'||*a=='\0')
                        break;
        }
        *a=0;
        return b;
}
这行代码在dev里输出不出结果,只输出一个换行符。在vs code里输出有用,不知道为什么,问下哪个才是对的。
最佳答案
2020-6-4 11:29:58
scanf之后缓冲区剩下一个回车字符,需要清除 否则影响后面的getchar函数读取
程序还有点小毛病,帮你修改了。
/*从输入中获取n个字符,在读到第一个空白、制表符、换行符停止*/
#include <stdio.h>
#define SIZE 81
void q(char *a,int n);
int main(void){
        char a[SIZE];
        int n;
        scanf("%d",&n);
        q(a,n);
        puts(a);
        return 0;
}
void q(char *a,int n){
        char *b;
        b=a;
        getchar();//这里需要加一句,清除scanf剩余的回车字符,否则一进入循环就退出了。
        for(;a<b+n;a++){
                *a=getchar();
                if(*a==' '||*a=='\n'||*a=='\t'||*a=='\0')
                        break;
        }
        *a='\0';
        a=b;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 11:29:58 | 显示全部楼层    本楼为最佳答案   
scanf之后缓冲区剩下一个回车字符,需要清除 否则影响后面的getchar函数读取
程序还有点小毛病,帮你修改了。
/*从输入中获取n个字符,在读到第一个空白、制表符、换行符停止*/
#include <stdio.h>
#define SIZE 81
void q(char *a,int n);
int main(void){
        char a[SIZE];
        int n;
        scanf("%d",&n);
        q(a,n);
        puts(a);
        return 0;
}
void q(char *a,int n){
        char *b;
        b=a;
        getchar();//这里需要加一句,清除scanf剩余的回车字符,否则一进入循环就退出了。
        for(;a<b+n;a++){
                *a=getchar();
                if(*a==' '||*a=='\n'||*a=='\t'||*a=='\0')
                        break;
        }
        *a='\0';
        a=b;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 17:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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