#include <unistd.h>
#include <stdlib.h>
void func_putchar(char c)
{
write(1, &c, 1);
}
void func_putchar(char c);
void func_is_negative(char *n){
if (n >= 0)
{
func_putchar('P');
}
else
{
func_putchar('N');
}
}
int main ( int argc, char *argv[] ){
char n = atoi (argv[1]);
func_is_negative(&n);
}
我尝试通过终端插入数字,但是每次获得随机结果时,它要么是正数,要么是负数。我认为代码不会检查提交的数字或使用atoi()对其进行糟糕的翻译
从我的角度来看,您确实要保持稳定,为什么要char n = atoi(argv[1])
更好地使用,int n = atoi(argv[1])
因为atoi返回一个int或long。
之后,我认为您不需要n的指针,这func_is_negative(n);
对于您的情况而言看起来更好。
因此也要替换函数的原型,void func_is_negative(int n)
看起来更好,因为您使用的是整数。
如果我不说一团糟,那么当您执行:if (n >= 0)
whith时char *n
,您正在比较一个指针(char *)和0,并且指针的值不能为0或更小
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句