首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ printf 格式字符串錯誤:%f 與 f% 混淆導致輸出異常

     編輯:程式設計綜合問答

錯誤現象

代碼中 printf("c=f%\ns=f%\nv=f%\n", c, s, v); 輸出結果為 c=f, s=f, v=f,變量值未顯示。

根本原因

格式佔位符寫反了:
正確語法是 %f(百分號在前),代碼寫成 f%(字母在前),導致編譯器將其視為普通字符「f%」直接輸出,而非格式化變量。

修正代碼

#define PI 3.1415926
#include 
#include 
int main() {
    double r = 3.57, c, s, v;
    c = 2 * PI * r;
    s = PI * pow(r, 2);
    v = 4.0/3.0 * PI * pow(r, 3);
    printf("c=%f\ns=%f\nv=%f\n", c, s, v);  // 修正 %f 位置
    return 0;
}

常用格式符速查

類型格式符示例
double/float%f / %.2f3.14 / 3.14
int%d42
char%cA
string%sHello

格式字符串錯誤是 C/C++ 初學者最高頻 Bug,慎記「% 在前,類型在後」!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved