1
因此,我正在考慮哈佛的CS50,這可以讓那些樂意接受這個問題的人們受益。從輸入獲得特定範圍的花車
我正在製作一個名爲Resize的程序,其中我們需要3個命令行參數,第一個是'f'。確切的報價:
第一(F)必須是(0.0,100.0]浮點值
的問題是:如何從一個命令 - 設定的範圍接受的值的我們應該使用sscan()和atof()函數來做到這一點
因此,我正在考慮哈佛的CS50,這可以讓那些樂意接受這個問題的人們受益。從輸入獲得特定範圍的花車
我正在製作一個名爲Resize的程序,其中我們需要3個命令行參數,第一個是'f'。確切的報價:
第一(F)必須是(0.0,100.0]浮點值
的問題是:如何從一個命令 - 設定的範圍接受的值的我們應該使用sscan()和atof()函數來做到這一點
沒有辦法限制命令行參數,因爲它完全由命令的用戶決定。獲取參數並根據您的要求進行檢查。在您的情況下,採用參數,然後將其轉換爲雙精度值並檢查如果它在期望的範圍內。
if (argc != 4) {
puts("not enough argument");
exit(1);
}
char *strf = argv[1];
char *end = NULL;
double f = strtod(strf, &end);
if (end == strf || *end != '\0') {
puts("not a valid floating point value");
exit(1);
}
if (errno == ERANGE) {
puts("value out of range");
exit(1);
}
if (f <= 0.0 || f > 100.0) {
puts("value not in required range");
exit(2);
}
// ... do other work with f
謝謝!它確實有幫助 –
程序必須檢查輸入,如果輸入無效,則退出並提供信息消息,以便用戶可以正確調用程序。 –