我需要做的是「微調」一些應與程序其餘部分一起編譯的常量值,但我想在每次更改時驗證結果,而不必修改一個值並且每次重新編譯整個程序。所以我在考慮在每次更改數字時重新加載一種純文本配置文件,並重新初始化部分程序以對新值執行操作。這是我經常做的事情,但是這一次我想要做的是有一個具有以下語法有效納入文件的形式下,此配置文件:C++在運行時評估包含文件
const MyStructure[] =
{
{ 1, 0.5f, 0.2f, 0.77f, [other values...] },
{ 3, 0.4f, 0.1f, 0.15f, [other values...] },
[other rows...]
};
如果我使用的解釋性語言,如Perl,我會使用eval()
函數,如果C++不可行的話。儘管我已經閱讀了關於在C++中使用eval()函數的其他問題,但我想要的不是評估和運行此代碼,而是解析它並將這些值放入它們所屬的變量中。
我可能會使用正則表達式來解析上面的C語法,但是再一次,RegExp仍然不是值得在C++中使用的東西,那麼您能否提出一種替代方法?
這可能是值得說的,我只需要在開發階段解析這個文件。當程序準備好發佈時,我會#include
。
只需將常規文件中的數據加載到非'contst'變量中即可。你不會從「這個變量是const」,但有時它會改變「。 – nwp
爲什麼不只是有一個數據文件? – KonstantinL
我知道英語不是我的母親toungue,但我不認爲我的帖子不夠清楚,當我說我只需要在開發階段更改此文件。一旦程序完成,這些數據必須保持不變,不再改變。擁有一個不再需要改變的數據文件是毫無意義的。我的主要目標是加速開發過程,避免每次需要更改數據結構中的某些內容時重新編譯整個程序。 –