【问题标题】:Can't correctly write an int with printf [closed]无法使用 printf 正确写入 int [关闭]
【发布时间】:2015-12-08 15:47:09
【问题描述】:

我有以下代码:

char temp[1024];    
bzero(temp, 1024);    
for(i=0;i<4;i++){    
  temp[i] = '9';    
}
int balance = atoi(temp);

当我打印 temp 时,它显示 9999。但是,余额没有分配。
如果我使用:

printf("%c", balance);  // it prints nothing! 

代码有什么问题?

【问题讨论】:

  • atoi(temp) 返回 9999,此值分配给 balance。那有什么问题?我不明白这个问题。
  • 如果你可以让一个 int 变量什么都不是,你就发明了一些新东西。
  • 你说的“余额没有分配”是什么意思?
  • 我的意思是,如果我使用 printf("%c", balance);,它什么也不打印!好奇怪!
  • 嗯,balanceint%c 是字符格式,那么您期待什么?请改用printf("%i", balance);

标签: c char int


【解决方案1】:

您使用了错误的格式说明符

printf("%c", balance);

应该是

printf("%d", balance);

因为balance 被定义为int

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多