屁哥 发表于 2017-3-10 19:12:14

ch = getchar() 能换成 scanf("%d", &ch) 么 或者是%c

能编译不能运行 ch = getchar();和 scanf("%d", &ch);意思类似 只是%d 不能打印字符串么?还是怎么的?
#include <stdio.h>

int main()
{
                int ch;
                int num = 0;
               
                printf("请输入一串字符:");
                scanf("%d", &ch);
               
                do
                {
//                                ch = getchar();
                               
                                if (ch > 0 && ch < 9)
                                {
                                                num = 10 * num + (ch - '0');
                                }
                                else
                                {
                                        if(num)
                                        {
                                                        break; //如果已有数字,则退出循环。
                                        }
                                }
                }
               
                while (ch != '\n');
               
                printf("结果是:%d\n", num);
       
                return 0;
}

屁哥 发表于 2017-3-10 19:14:37

if (ch > '0' && ch < '9')
上面这个打错了。。。。。。

CalvinD 发表于 2017-3-10 20:16:22

%d 是读取int型整数的getchar()是读取单个字符的

lumber2388779 发表于 2017-3-10 22:04:43

ch = getchar();等同于 scanf("%c", &ch);都是同样的效果获取字符串
如果是%d的话就变成了整形数字 而%f则变成了浮点数
http://c.biancheng.net/cpp/html/293.html
参考下这个

小甲鱼 发表于 2017-3-11 03:13:25

ch = getchar() 是对应 scanf("%c", &ch);

那可能会问了:“getchar() 函数返回的是一个整型,为什么不是 %d 呢?”

这是因为 getchar() 返回的是一个用整型存放的字符……

屁哥 发表于 2017-3-11 11:04:35

小甲鱼 发表于 2017-3-11 03:13
ch = getchar() 是对应 scanf("%c", &ch);

那可能会问了:“getchar() 函数返回的是一个整型,为什么不 ...

半夜三点多的回复 谢谢 了
你们果然辛苦

屁哥 发表于 2017-3-11 11:14:51

CalvinD 发表于 2017-3-10 20:16
%d 是读取int型整数的getchar()是读取单个字符的

谢谢 回复

屁哥 发表于 2017-3-11 11:15:54

lumber2388779 发表于 2017-3-10 22:04
ch = getchar();等同于 scanf("%c", &ch);都是同样的效果获取字符串
如果是%d的话就变成了整形数字 而%f则 ...

谢谢 师兄

阿西吧 发表于 2017-3-11 11:28:41

getchar()是字符,%d是Int型的,改成char型

屁哥 发表于 2017-3-13 10:16:31

阿西吧 发表于 2017-3-11 11:28
getchar()是字符,%d是Int型的,改成char型

谢谢
页: [1]
查看完整版本: ch = getchar() 能换成 scanf("%d", &ch) 么 或者是%c