diff --git a/examples/4-fill_table.cpp b/examples/4-fill_table.cpp new file mode 100644 index 0000000..4029288 --- /dev/null +++ b/examples/4-fill_table.cpp @@ -0,0 +1,29 @@ +#include +#include + +#include "fort.hpp" + +int main(void) +{ + fort::table table; + table << fort::header; + /* Fill each cell with operator[] */ + table [0][0] = "N"; + table [0][1] = "Planet"; + table [0][2] = "Speed, km/s"; + table [0][3] = "Temperature, K"; + table << fort::endr; + + + /* Fill with iostream operator<< */ + table << 1 << "Mercury" << 47.362 << 340 << fort::endr; + + /* Fill row explicitly with strings */ + table.write_ln("2", "Venus", "35.02", "737"); + + /* Fill row with data from the container */ + std::vector arr = {"3", "Earth", "29.78", "288"}; + table.range_write_ln(std::begin(arr), std::end(arr)); + + std::cout << table.to_string() << std::endl; +} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d556032..16568df 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -62,6 +62,11 @@ add_executable(${PROJECT_NAME}_complex_layout_cpp target_link_libraries(${PROJECT_NAME}_complex_layout_cpp fort) +add_executable(${PROJECT_NAME}_fill_table_cpp + 4-fill_table.cpp) +target_link_libraries(${PROJECT_NAME}_fill_table_cpp + fort) + add_executable(${PROJECT_NAME}_ex_cpp main.cpp) target_link_libraries(${PROJECT_NAME}_ex_cpp @@ -81,6 +86,8 @@ set(${PROJECT_NAME}_examples ${PROJECT_NAME}_ex_cpp ${PROJECT_NAME}_simple_table_cpp ${PROJECT_NAME}_custom_table_cpp + ${PROJECT_NAME}_complex_layout_cpp + ${PROJECT_NAME}_fill_table_cpp PARENT_SCOPE) if(DEFINED FORT_LINK_LIBRARIES) diff --git a/examples/main.cpp b/examples/main.cpp index 00bc9f7..3a58492 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -2,95 +2,9 @@ #include #include "fort.hpp" -fort::table create_basic_table(void) -{ - fort::table table; - /* Set table border style */ - table.set_border_style(FT_BASIC_STYLE); - - // Fill table with data - table << fort::header - << "Rank" << "Title" << "Year" << "Rating" << fort::endr - << "1" << "The Shawshank Redemption" << "1994" << "9.5" << fort::endr - << "2" << "12 Angry Men" << "1957" << "8.8" << fort::endr - << "3" << "It's a Wonderful Life" << "1946" << "8.6" << fort::endr - << fort::separator - << "4" << "2001: A Space Odyssey" << "1968" << "8.5" << fort::endr - << "5" << "Blade Runner" << "1982" << "8.1" << fort::endr - << fort::endr; - - table.column(0).set_cell_text_align(fort::text_align::center); - table.column(1).set_cell_text_align(fort::text_align::left); - - std::cout << table.to_string() << std::endl; - return table; -} - -void base_example(void) -{ - fort::table table; - table << fort::header - << "N" << "Driver" << "Time" << "Avg Speed" << fort::endr - << "1" << "Ricciardo" << "1:25.945" << "47.362" << fort::endr - << "2" << "Hamilton" << "1:26.373" << "35.02" << fort::endr - << "3" << "Verstappen" << "1:26.469" << "29.78" << fort::endr; - - std::cout << table.to_string() << std::endl; -} - -void different_cell_properties_example(void) -{ - fort::table table; - /* Change border style */ - table.set_border_style(FT_DOUBLE2_STYLE); - - table << fort::header - << "Movie title" << "Director" << "Year" << "Rating" << fort::endr - << "The Shawshank Redemption" << "Frank Darabont" << "1994" << "9.5" << fort::endr - << "The Godfather" << "Francis Ford Coppola" << "1972" << "9.2" << fort::endr - << "2001: A Space Odyssey" << "Stanley Kubrick" << "1968" << "8.5" << fort::endr; - - /* Set center alignment for the 1st and 3rd columns */ - table.column(1).set_cell_text_align(fort::text_align::center); - table.column(3).set_cell_text_align(fort::text_align::center); - - - std::cout << table.to_string() << std::endl; -} - - -void fill_table_with_data_example(void) -{ - fort::table table; - table << fort::header; - /* Fill each cell with operator[] */ - table [0][0] = "N"; - table [0][1] = "Planet"; - table [0][2] = "Speed, km/s"; - table [0][3] = "Temperature, K"; - table << fort::endr; - - - /* Fill with iostream operator<< */ - table << 1 << "Mercury" << 47.362 << 340 << fort::endr; - - /* Fill row explicitly with strings */ - table.write_ln("2", "Venus", "35.02", "737"); - - /* Fill row with data from the container */ - std::vector arr = {"3", "Earth", "29.78", "288"}; - table.range_write_ln(std::begin(arr), std::end(arr)); - - std::cout << table.to_string() << std::endl; -} - int main() { - base_example(); - different_cell_properties_example(); - fill_table_with_data_example(); - { fort::table table; // Fill table with data