2011-08-22 69 views
2

我正在尋找一種方法來保存用戶的喜好C.像Java Preferences API將是非常好的。保存用戶設置在C

+2

你可能會想調用'fopen'至少一次。 –

+0

什麼平臺?你是否需要平臺標準?註冊表? –

+0

是C++好嗎,還是沒有? –

回答

0

那麼,要在C或C++中以便攜方式執行此操作,您需要定義一個接口。在C中,這將是某種偏好模塊。在C++中,這將是一個抽象類。當您想要加載和保存偏好時,您將編程到此界面。重點在於,作爲界面的用戶,只要可以加載並保存它們,您就不必關心它們存儲在何處或如何存儲。

然後,您將編寫您想要支持的操作系統的接口代碼。例如:在Windows上,您會編寫從註冊表讀取並寫入的方法。在Mac上,你可以讀寫plist文件。

希望這會有所幫助。哦,是的,C和C++不支持偏好保存和加載。你將不得不編寫代碼來完成它。

最後,您可以讀取和寫入文本文件,二進制文件或任何其他文件。但是,除非您有充分的理由不這樣做,否則您應該使用標準OS系統來選擇偏好。當您使用您的偏好設置的方式發生變化時,這將使事情變得更簡單。

+0

不必內置,對於linux(和osx)和windows – fread2281

0

如果您使用的是Qt應用程序框架,那麼QSettings是與Java的首選項等效的類。 Qt適用於Linux,Mac和Windows。如果您目前沒有使用C++應用程序框架,那麼Qt是很好的,因爲它提供了很多有用的功能,SIGNAL/SLOT機制可以方便地啓動。如果你已經有了一個應用程序框架,我不建議添加Qt來保存你的首選項,因爲你需要運行你的程序作爲QCoreApplication。

的Qt下載: http://qt-project.org/downloads

QtSettings類參考:

相關的StackOverflow問題: Store settings of qt application using QSettings