2

我现在被困在相同的代码上退出一段时间了。我正在尝试用从文本文件(ascii)中读取的字符填充 char 数组。但是由于某种原因,当我 printf char 数组时,它只显示字母 H。

代码:

void append(char c)
{
  //int len = strlen(cStr);
  cStr[iCounter] = c;
  cStr[iCounter + 1] = '\0';
  printf("char c:%c    char array%c\n",c,cStr);
}

char 数组 (cStr) 在此函数之外声明,因为我需要从不同的函数访问它。iCounter 也是如此,它每次执行此函数时都会递增。

任何帮助,将不胜感激。

4

2 回答 2

3

%c您使用使用字符串说明符打印一个字符%s

printf("char c:%c    char array%s\n",c,cStr);

注意:iCounter实际上并没有增加:

  cStr[iCounter++] = c;
  cStr[iCounter] = '\0';
于 2012-11-23T11:28:48.947 回答
1

用于%s打印字符串。%c用于打印唯一字符。

从 printf手册页

C

如果不存在 l 修饰符,则将 int 参数转换为无符号字符,并写入结果字符。如果存在 l 修饰符,则通过调用 wcrtomb(3) 函数将 wint_t(宽字符)参数转换为多字节序列,转换状态从初始状态开始,并写入生成的多字节字符串。

于 2012-11-23T11:28:46.063 回答