online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include "address_management.h" int main() { auto number_of_addresses = 0; while (true) { std::cout << "Please enter the number of addresses: "; std::cin >> number_of_addresses; if (std::cin.fail()) { std::cout << "Please enter an integer!" << "\n"; std::cin.clear(); std::cin.ignore(); } else { break; } } AddressManagement address_management(number_of_addresses); std::cout << "\n"; address_management.ReadAllAddresses(); std::cout << "Unsorted:" << "\n"; address_management.WriteAllAddresses(); std::cout << "Sorted (zip code):" << "\n"; address_management.SortAddresses(); address_management.WriteAllAddresses(); std::cout << "\n"; std::cout << "Press <Enter> to quit!" << "\n"; std::cout << "\n"; std::cin.seekg(0, std::ios::end); std::cin.clear(); std::cin.get(); return 0; }
#ifndef ADDRESS_H_ #define ADDRESS_H_ #include <string> class Address { public: std::string name_; std::string street_; std::string city_; int zip_code_ = 0; bool operator>(Address other) const noexcept; bool operator<(Address other) const noexcept; void Write() const; void Read(); }; #endif // ADDRESS_H_
#include "address.h" #include <iostream> bool Address::operator>(Address other) const noexcept { return zip_code_ > other.zip_code_; } bool Address::operator<(Address other) const noexcept { return zip_code_ < other.zip_code_; } void Address::Write() const { std::cout << "Name: " << name_ << "\n"; std::cout << "Street: " << street_ << "\n"; std::cout << "City: " << zip_code_ << " " << city_ << "\n"; } void Address::Read() { std::cout << "Please enter the name: "; std::cin >> name_; std::cout << "Please enter the street: "; std::cin >> street_; while (true) { std::cout << "Please enter the zip code: "; std::cin >> zip_code_; if (!std::cin.fail()) { break; } else { std::cout << "Please enter an integer!" << "\n"; std::cin.clear(); std::cin.ignore(); } } std::cout << "Please enter the city: "; std::cin >> city_; }
#ifndef ADDRESS_MANAGEMENT_H_ #define ADDRESS_MANAGEMENT_H_ #include <string> #include <vector> #include "address.h" class AddressManagement { public: std::vector<Address> addresses_; AddressManagement(int number_of_addresses); void ReadAllAddresses(); void WriteAllAddresses() const; void SortAddresses(); private: static void ShowAddress(const std::string& name, const std::string& street, const std::string& city, int zip_code); }; #endif // ADDRESS_MANAGEMENT_H_
#include "address_management.h" #include <algorithm> #include <iostream> #include "address.h" AddressManagement::AddressManagement(int number_of_addresses) { addresses_.reserve(number_of_addresses); for (auto i = 0; i < number_of_addresses; ++i) { addresses_.emplace_back(); } } void AddressManagement::ReadAllAddresses() { for (auto& address : addresses_) { address.Read(); std::cout << "\n"; } } void AddressManagement::WriteAllAddresses() const { for (auto address : addresses_) { ShowAddress(address.name_, address.street_, address.city_, address.zip_code_); } } void AddressManagement::SortAddresses() { std::sort(addresses_.begin(), addresses_.end()); } void AddressManagement::ShowAddress(const std::string& name, const std::string& street, const std::string& city, int zip_code) { std::cout << "Name: " << name << "\n"; std::cout << "Strasse: " << street << "\n"; std::cout << "Ort: " << zip_code << " " << city << "\n"; std::cout << "\n"; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue