我想從文件中選擇浮點數。我認爲作爲一個解決方案是這樣的:從文件中選擇浮點數
while ((ch= getc(fp)) != EOF)
{
if(isdigit(ch))
//do some stuff
}
但是後來我看到,那這種方法我只得到了整數(但我想浮動)。所以,我看着它,我發現這一點:
while((fscanf(fp, "%lf", &n) == 1)
//do some stuff
我也看了fscanf()
和中它說其他東西的定義..
返回值
成功時,函數返回成功填充的參數 列表的項目數。由於匹配故障,讀數爲 錯誤或文件結束的範圍,此計數可以匹配預期的 項目數或者更少(甚至爲零)。
如果發生讀取錯誤或文件結束時 讀取,則設置正確的指示符(feof或ferror)。並且,如果在成功讀取任何數據之前發生了 ,則返回EOF。
如果解釋寬字符時發生編碼錯誤,則函數 將errno設置爲EILSEQ。
但是,我不明白while((fscanf(fp, "%lf", &n) == 1)
。如果fscanf()
讀取一個浮點數將返回1,否則會返回其他的東西?
當你說「選擇」,這是否意味着有更多的非浮點數,你想跳過的文件中的數據? – unwind
當我寫了我認爲如此的問題時,但我更仔細地閱讀了我的練習,然後解決方案,因爲它看起來程序只是選擇數字,然後結果打印爲浮點型。然而,我仍然保持這個問題,因爲我很好奇我該怎麼做(只選擇浮動數字)。 – yaylitzis