vc6的printf函數結果囘卷的問題

我寫了一個程序,其中用到了格式化輸出的問題。於是我自然而然的想到使用printf實現。但是卻沒想到,在控制臺的最後一行卻出現了問題。代碼是這樣的.
#define FMT "%s Old=%s, the new[other=exit]:"
char *p = "SecurityLevel (0=authNoPriv 1=authPriv 2=noAuthNoPriv):";
char *oldValue = "0";
int main(void)
{
...
 // 在屏幕的末行
 printf(FMT, p, oldValue);
 {
  int newValue = 0;
  scanf("%d", &newValue);
 }
...
}
結果是由於在合成成結果是"SecurityLevel (0=authNoPriv 1=authPriv 2=noAuthNoPriv) Old=0, the new[other=exit]:",超出了80個字符,於是乎超出的部分"xit]:",並沒有換行,而是覆蓋了行首的字符。我試了各種方法都沒有解決。最後解決方案是裁減FMT的内容,刪除方括號及其中的内容,由於内容沒有超過80個字符,所以問題就沒有出現了。也許以後有其他更好地解決辦法。這肯定是微軟VC庫的bug.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值