Compare commits
2 Commits
ef2bb1ddc6
...
c27a71a56f
Author | SHA1 | Date | |
---|---|---|---|
|
c27a71a56f | ||
|
290c9e2a53 |
122
Main.cpp
122
Main.cpp
@ -1,3 +1,4 @@
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
@ -99,17 +100,89 @@ typedef struct contacts{
|
||||
} Kontaktdaten;
|
||||
|
||||
|
||||
void addContact(Kontaktdaten* person, std::vector<Kontaktdaten*> &Telefonbuch) {
|
||||
Telefonbuch.push_back(person);
|
||||
void addContact(Kontaktdaten* person, std::vector<Kontaktdaten*> *Telefonbuch) {
|
||||
Telefonbuch->push_back(person);
|
||||
// std::vector<Kontaktdaten *> buch = *Telefonbuch;
|
||||
// buch.push_back(person);
|
||||
}
|
||||
|
||||
void printAllContacts(std::vector<Kontaktdaten*> Telefonbuch) {
|
||||
for (Kontaktdaten * personpointer: Telefonbuch) {
|
||||
void printAllContacts(std::vector<Kontaktdaten*> *Telefonbuch) {
|
||||
for (Kontaktdaten * personpointer: *Telefonbuch) {
|
||||
Kontaktdaten person = *personpointer;
|
||||
std::cout << person.firstName << " " << person.lastName << " " << person.number << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void saveAllContacts(std::vector<Kontaktdaten*> *Telefonbuch, std::string *fileName) {
|
||||
std::ofstream outfile;
|
||||
outfile.open(*fileName);
|
||||
|
||||
for (Kontaktdaten * personpointer: *Telefonbuch) {
|
||||
Kontaktdaten person = *personpointer;
|
||||
outfile << person.firstName << std::endl << person.lastName << std::endl << person.number << std::endl;
|
||||
}
|
||||
|
||||
outfile.close();
|
||||
}
|
||||
|
||||
int exponentiate(int base, int exponent) {
|
||||
int result = 1;
|
||||
while (exponent > 0) {
|
||||
result *= base;
|
||||
exponent--;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int intStringToInt(std::string input) {
|
||||
int result = 0;
|
||||
|
||||
int size = input.length();
|
||||
for(int i = 0; i < size; i++) {
|
||||
int digit = input[size - 1 - i] - '0'; // -1 to consider 0-index // -'0' to get ascii indicies right
|
||||
result += digit * exponentiate(10, i); // shift digit
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void readContactsFromFile(std::vector<Kontaktdaten*> *Telefonbuch, std::string *fileName) {
|
||||
std::ifstream infile;
|
||||
infile.open(*fileName);
|
||||
|
||||
if (!infile.is_open()) {
|
||||
std::cout << "File does not exist" << std::endl;
|
||||
}
|
||||
|
||||
std::string line;
|
||||
int counter = 0;
|
||||
Kontaktdaten * personpointer = new Kontaktdaten;
|
||||
while (std::getline(infile, line)) {
|
||||
|
||||
int attribute = counter % 3;
|
||||
counter++;
|
||||
|
||||
switch (attribute) {
|
||||
case 0:
|
||||
personpointer->firstName = line;
|
||||
break;
|
||||
case 1:
|
||||
personpointer->lastName = line;
|
||||
break;
|
||||
case 2:
|
||||
personpointer->number = intStringToInt(line);
|
||||
addContact(personpointer, Telefonbuch);
|
||||
personpointer = new Kontaktdaten;
|
||||
break;
|
||||
default:
|
||||
std::cout << "This should never happen" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
infile.close();
|
||||
}
|
||||
|
||||
/*
|
||||
Kontaktdaten * createContact(std::string firstName, std::string lastName, int number) {
|
||||
Kontaktdaten person = new Kontaktdaten;
|
||||
@ -123,11 +196,17 @@ Kontaktdaten * createContact(std::string firstName, std::string lastName, int nu
|
||||
*/
|
||||
|
||||
void TelefonbuchMain() {
|
||||
std::string fileName = "../IO-Files/Telefonbuch.txt";
|
||||
std::vector<Kontaktdaten*> Telefonbuch;
|
||||
|
||||
Kontaktdaten * Robin = new Kontaktdaten;
|
||||
Kontaktdaten * Saxo = new Kontaktdaten;
|
||||
Kontaktdaten * Jesus = new Kontaktdaten;
|
||||
for (int i=0; i<1; i++) {
|
||||
readContactsFromFile(&Telefonbuch, &fileName);
|
||||
std::cout << "Done with reading " << i << std::endl;
|
||||
}
|
||||
|
||||
auto * Robin = new Kontaktdaten;
|
||||
auto * Saxo = new Kontaktdaten;
|
||||
auto * Jesus = new Kontaktdaten;
|
||||
|
||||
Robin->number = 123456;
|
||||
Robin->firstName = "Robin";
|
||||
@ -141,15 +220,30 @@ void TelefonbuchMain() {
|
||||
Jesus->firstName = "Jesus";
|
||||
Jesus->lastName = "Nazarett";
|
||||
|
||||
addContact(Robin, Telefonbuch);
|
||||
addContact(Saxo, Telefonbuch);
|
||||
addContact(Jesus, Telefonbuch);
|
||||
/*
|
||||
*Robin->number = 123456;
|
||||
Robin->firstName = "Robin der Neue";
|
||||
Robin->lastName = "Schnaiter";
|
||||
|
||||
printAllContacts(Telefonbuch);
|
||||
Saxo->number = 987654;
|
||||
Saxo->firstName = "Saxobastian";
|
||||
Saxo->lastName = "Broschianer";
|
||||
|
||||
for (Kontaktdaten * personpointer: Telefonbuch) {
|
||||
delete personpointer;
|
||||
}
|
||||
Jesus->number = 6666666;
|
||||
Jesus->firstName = "Jesus";
|
||||
Jesus->lastName = "Nazarett";
|
||||
*/
|
||||
|
||||
addContact(Robin, &Telefonbuch);
|
||||
addContact(Saxo, &Telefonbuch);
|
||||
addContact(Jesus, &Telefonbuch);
|
||||
|
||||
// printAllContacts(&Telefonbuch);
|
||||
saveAllContacts(&Telefonbuch, &fileName);
|
||||
|
||||
delete Robin;
|
||||
delete Saxo;
|
||||
delete Jesus;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
Loading…
Reference in New Issue
Block a user