| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1649 人关注过本帖
标题:让函数在读取到空格字符,制表符,换行符的时候停止输入,可是却无法停止输 ...
只看楼主 加入收藏
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
收藏
已结贴  问题点数:20 回复次数:3 
让函数在读取到空格字符,制表符,换行符的时候停止输入,可是却无法停止输入
让函数在读取到第一个空格字符,制表符,换行符的时候停止输入,可是却无法停止输入,什么原因?如何修改?代码如下:
程序代码:
#include"stdio.h"
char *function(char a[],int n){
    int i;
    i=0;
    a[i]=getchar();
    while(a[i]!=' '||a[i]!='    '||a[i]!='\n'){
        a[++i]=getchar();   
    }
    return a; 
}
int main(void){
    char b[100];
    char *c;
    c=function(b,10);
    puts(c);
    return 0;
}
搜索更多相关主题的帖子: 读取 char 停止 函数 输入 
2020-06-07 23:51
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
char *function(char* a, int n)
{
    int i;
    for (i=0; i<n; ++i)
    {
        a[i]=getchar();
        if (a[i]==' ' || a[i]=='\t' || a[i]=='\n')
            break;
    }
    a[i] = '\0';
    return a;
}
2020-06-08 07:48
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
getchar 这个函数默认是在回车之后才开始执行的
如果你想按下空格就结束执行 一般不使用这个函数(非要用也不是完全不可能 但没必要)
你可以考虑用getch()
这是非标准函数 不同环境可能名字不一样 比如 _getch()
你自己试试看

https://zh.
2020-06-08 20:41
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
while(a[i]!=' '||a[i]!='    '||a[i]!='\n')

这个语句中的逻辑你显然没弄懂
首先while(1)则循环,while(0)则退出
然后就是当“||”运算符两端都为0时,式子结果才为0
你这个语句只有当a[i]同时为空格,换行,制表符时,才能退出循环
应该用使用“&&”
2020-06-09 10:49
快速回复:让函数在读取到空格字符,制表符,换行符的时候停止输入,可是却无法停 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025186 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved