【发布时间】:2012-01-24 12:15:28
【问题描述】:
我正在尝试将存储在十六进制数组中的所有字符逐个打印到屏幕上,但在第 16 行出现了这个奇怪的错误。据我所知,%c 应该期待一个 char,而不是一个 int . 为什么我会收到此错误? 下面是我的代码,谢谢。
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <ctype.h>
#include <string.h>
int main()
{
char hex[8] = "cf0a441f";
int hexCounter;
char *currentHex;
for(hexCounter=0; hexCounter<strlen(hex); hexCounter++)
{
currentHex = &hex[hexCounter];
printf("%c",currentHex);
}
return 0;
}
【问题讨论】:
-
hex必须声明为char hex[9],而不是[8]。您忘记了空终止符。