我需要像我突出顯示的那條線一樣“掃描”。我如何提取數字?我在課程開始時,所以不要發布過于復雜的解決方案,我可能還沒有研究過。
輸入(房屋成本、首付、儲蓄、儲蓄年利率、抵押年利率、工資、儲蓄率、年加薪、房屋租金):
(600000, 0.15, 50000, 0.02, 0.03, 10000, 0.3, 0.03, 2000)
C語言。
uj5u.com熱心網友回復:
我如何提取數字?
在簡單的方法是閱讀與線fgets(),然后用分析sscanf()和"%n"記錄掃描的偏移,如果它得到那么遠。
使用可以容忍(,)分隔符附近空白的格式。
"%lf"已經消耗了領先的空白。
#define EXPECTED_SIZE 100
char buffer[EXPECTED_SIZE * 2]; // Be generous in buffer size
// Was a line successfully read?
if (fgets(buffer, sizeof buffer, stdin)) {
// Example code simplified to 3 variables
double House_cost, down_payment, savings;
int n = 0;
sscanf(buffer, " (%lf ,%lf ,%lf ) %n",
&House_cost, &down_payment, &savings, &n);
// Did scanning reach the %n and was that the end of the line?
if (n > 0 && buffer[n] == '\0') {
Success();
} else {
Failed();
}
}
一個好的決議器已準備好檢測錯誤的輸入。不要假設輸入格式正確。
uj5u.com熱心網友回復:
有一組 C ANSI 標準庫函式可將字符資料轉換為數字資料。它們在 stdlib.h 頭檔案中,是 atoi()、atof()、atol()、atoll()。這些函式將 alpha 轉換為整數、浮點雙精度、長整數和長長整數資料型別。
如果不熟悉 C 語言,請參考適用于 GNU C/C 編譯器的在線檔案... GNU C 運行時庫參考
GNU C 編譯器和語言參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/341543.html
