标题:自定义函数 萌新求助
只看楼主
yujiangyan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-6-2
结帖率:0
已结贴  问题点数:20 回复次数:4 
自定义函数 萌新求助
//自行定义一个函数,使自己定义的函数具有gets()的功能,但是我这个最后不能输出东西,请大佬们帮忙看一下,谢谢赐教!
#include<stdio.h>
void my_gets(char a)
{
    printf("请输入字符串,以回车结束\n");
    while(1)
    {
        scanf("%c",&a);
        if(a='\n')
        break;   
    }
}
int main()
{

    char c;
    my_gets(c);
printf("%c",c);
   
}
搜索更多相关主题的帖子: 函数 定义 char printf 自定义 
2020-06-02 23:07
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
得分:10 
忽略各类检测的情况下:

char *my_gets(char *s)
{
    char *p = s;
    int c;
   
    while ((c = getchar()) != EOF)
        if (c == '\n')
            break;
        else
            *p++ = c;
    *p = '\0';
    return s;
}

梦想拥有一台龙芯3A-4000
2020-06-02 23:30
JabinZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:34
专家分:180
注 册:2020-5-7
得分:10 
程序代码:
#include<stdio.h>
void my_gets(char a) // 1. 这里接收的是局部变量,函数内部修改 `a`变量 不会影响main函数中的 `c`变量
{
    printf("请输入字符串,以回车结束\n");
    while(1) 
    {
        // 按照你目前的设计,就算你把 (1,2)问题都修改了,这函数也只能把最后读到'\n' 字符赋值到 main函数中的 `c`变量, 所以你也看不到什么值
        scanf("%c",&a);
        if(a='\n') // 2. 这量是要判断 a 等于 '\n' 不是要赋值  (== 是等于) (= 是赋值)
        break;    
    }
}
int main()
{

    char c;    // 变量记得初始化
    my_gets(c); // 你这里的本意是要读 `字符串` 吧, 但你传的是 `字符`
printf("%c",c);
   // 这里记得写 return 0;
}


2楼有答案,我就不写答案了
2020-06-02 23:51
yujiangyan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-6-2
得分:0 
回复 3楼 JabinZ
谢谢指教
2020-06-03 16:08
JabinZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:34
专家分:180
注 册:2020-5-7
得分:0 
回复 4楼 yujiangyan
客气
2020-06-03 20:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501937-1-1.html




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

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