using namespace std;
using namespace libconfig;
// This example reads the configuration file 'example.cfg' and displays
// some of its contents.
int main(int argc, char **argv)
{
Config cfg;
// Read the file. If there is an error, report it and exit.
try
{
cfg.readFile("example.cfg");
}
catch(const FileIOException &fioex)
{
std::cerr << "I/O error while reading file." << std::endl;
return(EXIT_FAILURE);
}
catch(const ParseException &pex)
{
std::cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine()
<< " - " << pex.getError() << std::endl;
return(EXIT_FAILURE);
}
// Get the store name.
try
{
string name = cfg.lookup("name");
cout << "Store name: " << name << endl << endl;
}
catch(const SettingNotFoundException &nfex)
{
cerr << "No 'name' setting in configuration file." << endl;
}
const Setting& root = cfg.getRoot();
// Output a list of all books in the inventory.
try
{
const Setting &books = root["inventory"]["books"];
int count = books.getLength();
cout << setw(30) << left << "TITLE" << " "
<< setw(30) << left << "AUTHOR" << " "
<< setw(6) << left << "PRICE" << " "
<< "QTY"
<< endl;
for(int i = 0; i < count; ++i)
{
const Setting &book = books[i];
// Only output the record if all of the expected fields are present.
string title, author;
double price;
int qty;
if(!(book.lookupValue("title", title)
&& book.lookupValue("author", author)
&& book.lookupValue("price", price)
&& book.lookupValue("qty", qty)))
continue;
cout << setw(30) << left << title << " "
<< setw(30) << left << author << " "
<< '$' << setw(6) << right << price << " "
<< qty
<< endl;
}
cout << endl;
}
catch(const SettingNotFoundException &nfex)
{
// Ignore.
}
// Output a list of all books in the inventory.
try
{
const Setting &movies = root["inventory"]["movies"];
int count = movies.getLength();
cout << setw(30) << left << "TITLE" << " "
<< setw(10) << left << "MEDIA" << " "
<< setw(6) << left << "PRICE" << " "
<< "QTY"
<< endl;
for(int i = 0; i < count; ++i)
{
const Setting &movie = movies[i];
// Only output the record if all of the expected fields are present.
string title, media;
double price;
int qty;
if(!(movie.lookupValue("title", title)
&& movie.lookupValue("media", media)
&& movie.lookupValue("price", price)
&& movie.lookupValue("qty", qty)))
continue;
cout << setw(30) << left << title << " "
<< setw(10) << left << media << " "
<< '$' << setw(6) << right << price << " "
<< qty
<< endl;
}
cout << endl;
}
catch(const SettingNotFoundException &nfex)
{
// Ignore.
}
return(EXIT_SUCCESS);
}
// eof
2-02-11 19:03:15 +0000'>2012-02-11Fix typo in bugclose changelog | Jonathan McCrohan | 1 | -1/+1 |
2012-02-11 | Fix typo in libconfig++dev.examples | Jonathan McCrohan | 1 | -3/+3 |
2012-02-11 | Update changelog. | Jonathan McCrohan | 1 | -2/+5 |
2012-02-11 | Remove forced install of examples in rules. | Jonathan McCrohan | 1 | -2/+2 |
2012-02-11 | Fix Examples. | Jonathan McCrohan | 6 | -34/+17 |
2012-02-11 | Remove makefile. | Jonathan McCrohan | 1 | -7/+0 |
2012-02-11 | Move *.docs, *.install and *.examples to -dev. | Jonathan McCrohan | 7 | -2/+2 |
2012-02-11 | Move to single -dev package. | Jonathan McCrohan | 2 | -14/+12 |
2012-02-08 | Update package changelog. | Jonathan McCrohan | 1 | -1/+1 |
2012-02-08 | Partial manual revert of move to libconfig*8. | Jonathan McCrohan | 4 | -12/+12 |
2012-02-08 | Add my name to debian copyright. | Jonathan McCrohan | 1 | -2/+3 |
2012-02-08 | Atomic commit. Rollback to libconfig8 packaging names. | Jonathan McCrohan | 10 | -8/+8 |
2012-02-07 | Rename libconfig9 to libconfig8 to aid release team | Jonathan McCrohan | 1 | -14/+14 |
2012-02-07 | Fix "closes typo" | Jonathan McCrohan | 1 | -1/+1 |
2012-02-07 | Revert "Add symbols" | Jonathan McCrohan | 3 | -739/+1 |
2012-02-07 | Revert "Fix b0rked symbol file." | Jonathan McCrohan | 1 | -1/+1 |
2012-02-07 | Revert "Second attempt" | Jonathan McCrohan | 2 | -0/+194 |
2012-01-29 | Second attempt | Jonathan McCrohan | 2 | -194/+0 |
2012-01-29 | Fix b0rked symbol file. | Jonathan McCrohan | 1 | -1/+1 |
2012-01-29 | Add symbols | Jonathan McCrohan | 3 | -1/+739 |
2012-01-26 | add examples properly | Jonathan McCrohan | 1 | -0/+2 |
2012-01-26 | Update changelog | Jonathan McCrohan | 1 | -3/+6 |
2012-01-26 | fix typo | Jonathan McCrohan | 1 | -1/+1 |
2012-01-26 | fix accidental description changes | Jonathan McCrohan | 1 | -2/+2 |
2012-01-26 | more fucking around to please lintian | Jonathan McCrohan | 1 | -5/+2 |
2012-01-25 | Linitan fixes | Jonathan McCrohan | 2 | -3/+2 |
2012-01-25 | Split out debug packages | Jonathan McCrohan | 2 | -1/+6 |
2011-12-31 | Fix debian/rules | Jonathan McCrohan | 1 | -1/+1 |
2011-12-31 | Remove shlibs | Jonathan McCrohan | 1 | -2/+0 |
2011-12-31 | Remove NMU from changelog | Jonathan McCrohan | 1 | -1/+0 |
2011-12-31 | Lintian Fixes | Jonathan McCrohan | 1 | -2/+4 |
2011-12-31 | Remove Makefile patch | Jonathan McCrohan | 1 | -1/+0 |
2011-12-31 | Update Makefiles | Jonathan McCrohan | 10 | -248/+8222 |
2011-12-31 | Updated makefiles | Jonathan McCrohan | 1 | -0/+1 |