Emily-CS 发表于 2016-5-17 23:34:46

为什么调试时根本没有任何输出?

我调试的时候没有任何输出(弹窗是空的)……不知道是为什么程序目的:把字符串(小数)转化成浮点数

#include<stdlib.h>
#include<stdio.h>
float str_transfer_float(char str[]);
int main()
{
        char str= "31.5";
        float a;
        a = str_transfer_float(str);
       printf("%f",a);
       while(1);
}




float str_transfer_float(char str[])//字符串实例:31.5【小数点前一两位数;小数点后一位数】

{
        int i=0, digit;
        float trans;
        while(str != '.')
        {
                digit=str-'0'; //一个一个位数转
                if (i=0)
                {
                        trans = digit;
                }
                else
                {
                        trans = trans * 10 + digit;
                }
                i++;
        }
        digit=str;
        trans = trans + digit*0.1;
        printf("%d %d %c %d",digit,digit,digit,digit);
        return trans;

}


n0noper 发表于 2016-5-18 09:09:23


卤煮,首先提醒你,你那不叫调试··· 调试的话,早就找到错误了。
广告时间(如果单步调试你会了,就可以路过):http://bbs.fishc.com/thread-71753-1-1.html

这次犯错之后就要记住了!

if (i = 0)    // 你这样,i一直先赋值0,然后自增,第二次又赋值0,自增。。。
if (0 == i) // 这样不好吗?希望养成常量在前边的习惯,错误了也容易发现

还有,你的digit = str;    这一步,不是很合适吧?
既然你前边都 - '0'了,这里也是需要的啊。

有啥疑问,先试试再讨论。
页: [1]
查看完整版本: 为什么调试时根本没有任何输出?