C中的华氏温度到摄氏温度

时间:2016-10-17 21:01:12

标签: c

我必须创建一个转换器,它在C中转换为C,反之亦然。 程序应该有两个参数,第一个是所需的转换类型,第二个是必须转换的度数 例如:./program -f 50.0 和输出:10.00°C = 50.00°F 它还必须使用两个函数f2c和c2f进行转换。 这是我的代码,运行正常,但由于某些原因没有访问ifs,所以它没有做任何事情。

from xml.dom.minidom import parse, parseString
xml_file='''<?xml version="1.0" encoding="UTF-8"?>
    <transfer frmt="1" vtl="0" serial_number="E5XX-0822" date="2016-10-03 16:34:53.000" style="startstop">
        <plateInfo>
              <plate barcode="E0122326" name="384plate" type="source"/>
              <plate barcode="A1234516" name="1536plateD" type="destination"/>
        </plateInfo>
        <printmap total="1387">
            <w reason="" cf="13" aa="1.779" eo="299.798" tof="32.357" sv="1565.311" ct="1.627" ft="1.649" fc="88.226" memt="0.877" fldu="Percent" fld="DMSO" dy="0" dx="0" region="-1" tz="18989.481" gy="72468.649" gx="55070.768" avt="50" vt="50" vl="3.68" cvl="3.63" t="16:30:47.703" dc="0" dr="0" dn="A1" c="0" r="0" n="A1"/>
            <w reason="" cf="13" aa="1.779" eo="299.798" tof="32.357" sv="1565.311" ct="1.627" ft="1.649" fc="88.226" memt="0.877" fldu="Percent" fld="DMSO" dy="0" dx="0" region="-1" tz="18989.481" gy="72468.649" gx="55070.768" avt="50" vt="50" vl="3.68" cvl="3.63" t="16:30:47.703" dc="0" dr="0" dn="A1" c="1" r="0" n="A2"/>
        </printmap>
    </transfer>'''
xmldoc = parseString(xml_file)
transfer = xmldoc.getElementsByTagName('transfer')
attlist= transfer[0].attributes.keys()
for a in attlist:
    print transfer[0].attributes[a].name,transfer[0].attributes[a].value

1 个答案:

答案 0 :(得分:2)

这里有两个问题:

首先,您尝试将字符串常量分配给单个字符:

char fArg = "-f";
char cArg = "-c";

您的编译器应该已经警告过您。将它们更改为字符数组:

char fArg[] = "-f";
char cArg[] = "-c";

修改对strcmp的调用,从这些变量中删除运算符&的地址。

其次,第一个命令行参数实际上是程序的名称,而不是第一个用户参数。因此,只要您访问argv元素,就可以将索引增加1。

sscanf(argv[2], "%f", &arg2);
if(strcmp(argv[1], cArg) == 0)
...
else if(strcmp(argv[1], fArg) == 0)
相关问题