如何使用atoi使pairCounts生成这一行?
# ./paircounts 17
0
# ./paircounts 255
7
# ./paircounts 10 20
too many arguments!
int pairCounts(unsigned int n);
int main(int argc, char *argv[]) {
const char testStr[] = "# pairs in base 2 of %u = %d, should be %d\n";
printf (testStr, 0, pairCount (0), 0);
printf (testStr, 11, pairCount (11), 1);
printf (testStr, 2863377066u, pairCount (2863377066u), 2);
printf (testStr, 268435456, pairCount (268435456), 0);
printf (testStr, 4294705151u, pairCount (4294705151u), 29);
return 0;
}
int pairCounts(unsigned int n) {
}
答案 0 :(得分:1)
为什么你会使用atoi
来做任何事情?如果要将字符串解析为整数值,则应使用strol
。并且atoi
甚至不适合产生输出。要生成这一行:
# ./paircounts 17 0
您可以使用puts
(或fputs
,printf
,fprintf
,或可能fwrite
,或write
。 ..)而不是atoi
。例如:puts( "# ./paircounts 17 0" )
。与其他行类似。
答案 1 :(得分:0)
阅读this页面。我知道它的cplusplus.com但它仍然适用于atoi的c版本。我不完全确定你想要完成什么,但我有两个想法:
您正在尝试检查是否有正确数量的参数。在这种情况下,您不需要atoi,您只需要检查argc的正确数量:
if (argc != 3) throw some error;
请记住,argc包含程序名称,因此它总是比实际输入参数多一个。
您想使用atoi做其他事情,在这种情况下请阅读atoi指南,因为它使用起来非常简单。
如果您想要更多说明,则需要改进您的问题。祝好运。