代码与分割故障的位置 我对C非常陌生(只有其他经验是Java和Python),因此请记住这一点。我正在尝试创建这种辅助方法,该方法将用相同数字打印出相同数字的八十八,十进制表示,并输入一个短阀和char模式。我不明白为什么我会在模式所在的第一个printf语句上收到细分故障,因为概念似乎很好。请发送帮助!
void print_bases (short val, char mode){
if (val == 0){
printf("* Base Values:\t Input Mode: %s *\n", mode);
printf("*%-3s%-8s:\t%04X%19s*\n", " ", "Hex", 0x0000, " ");
printf("*%-3s%-8s:\t%06o%17s*\n", " ", "Octal", 000000, " ");
printf("*%-3s%-8s:\t%d%22s*\n", " ", "Decimal", 0, " ");
}else{
printf("* Base Values:\t Input Mode: %s *\n", mode);
printf("*%-3s%-8s:\t%04X%19s*\n", " ", "Hex", val, " ");
printf("*%-3s%-8s:\t%06o%17s*\n", " ", "Octal", val, " ");
printf("*%-3s%-8s:\t%d%22s*\n", " ", "Decimal", val, " ");
}
}
我尝试在线查找这个问题,但没有任何效果,我不知道要修复它是什么问题,因为我基于示例比其他任何事物都多。
char
是
%c
,而不是
%s
。通过使用
%s
,您告诉它您将提供
char *
(指针)类型,并且应该期待C风格的字符串。那不会很好:-)