如何让这个程序读取C中的两位数整数和三位数?

时间:2015-05-01 09:35:23

标签: c type-conversion digits

因此,此函数从一个由空格分隔的文件中读取整数,并获取总数。它工作正常。

只要数字是单个数字,1-9 如何让它读取1-100的双位数字?
我是否在读取每个数字的ifs中进行嵌套,然后尝试在其旁边读取第二个数字而没有空格然后转到第三个数字(情况100)?

然后我将它们变成一个整数(说实话我不知道怎么做)

a = s.charAt(i)

}

1 个答案:

答案 0 :(得分:1)

这取决于你是否打算(或者意味着)以最少的编程努力获得整数,或者为自己练习或解决如何做(十进制)转换。

如果是前者,您需要仔细查看fscanf可以为您做些什么:如果您使用转化说明符,例如"%d""%i",您可以输入fscanf的一次调用中的任何整数。

如果使用后者,使用fgetc(fp)更有意义 - 使用fscanf(fp,"%c",&c)读取单个字节非常笨拙。在这种情况下,您在评论的正确轨道上:从0开始,每次找到(十进制)数字乘以整数结果到目前为止10并添加新数字。

对您的代码的评论:

  • cNULL进行比较的风格很差,因为NULL代表指针,但比较等于0。
  • 您似乎认为如果到达文件末尾,c将会更新。
  • 您似乎停在第一行的末尾:您是否在多行文件上测试了程序?
  • 您应该检查fscanf是否返回EOF - 请务必阅读您不熟悉的功能文档!
  • 您似乎每次通过循环读取两个字符,并且只处理其中一个字符。