#cant add element into vector

14 messages · Page 1 of 1 (latest)

floral widget
#

struct person //aggregat gör så vi kan skapa en ny datatyp som innehåller andra datatyper
{
string name; // definera aggregat
int hours;
int mins;
int seconds;

// construct initiering av aggregat
person(string name, int hours, int mins, int seconds)
: name {name}, hours {hours},mins {mins},seconds{seconds} {}

};

// struct måste vara över annars är person inte i scopet
vector <person> openfile()
// Retrunerar en vector där dess element är aggregat
{
string filepath {"upploppresultat.txt"};
ifstream file {filepath}; // öppnar filen, filen är en källa

vector <string > v{};
string line;
while (getline(file, line))
{
    istringstream iss {line};// varje rad göra tills istring object
    string name {}; 
    int hours {}; 
    int mins {}; 
    int seconds {};
    // >> kommer att läsa våran stängström sekventiellet. Den kommer
    // titta på första sekventiella värdet och spara den i name osv.
    if (iss >> name >> hours >> mins >> seconds){
        // extraherar name och tid från strängströmmen
    // funkar  lite som cin fast istället att källan är användaren är den strängströmmen
        v.push_back(person(name , hours, mins,seconds));
    }
}
    
return v;

}

something is not working then i try to use pushback on the vector

flint roverBOT
#

When your question is answered use !solved to mark the question as resolved.

Remember to ask specific questions, provide necessary details, and reduce your question to its simplest form. For tips on how to ask a good question use !howto ask.

flint roverBOT
#
struct person  // aggregat gör så vi kan skapa en ny datatyp som innehåller
               // andra datatyper
{
  string name;  // definera aggregat
  int hours;
  int mins;
  int seconds;

  // construct initiering av aggregat
  person(string name, int hours, int mins, int seconds)
      : name{name}, hours{hours}, mins{mins}, seconds{seconds} {}
};

// struct måste vara över annars är person inte i scopet
vector<person> openfile()
// Retrunerar en vector där dess element är aggregat
{
  string filepath{"upploppresultat.txt"};
  ifstream file{filepath};  // öppnar filen, filen är en källa

  vector<string> v{};
  string line;
  while (getline(file, line)) {
    istringstream iss{line};  // varje rad göra tills istring object
    string name{};
    int hours{};
    int mins{};
    int seconds{};
    // >> kommer att läsa våran stängström sekventiellet. Den kommer
    // titta på första sekventiella värdet och spara den i name osv.
    if (iss >> name >> hours >> mins >> seconds) {
      // extraherar name och tid från strängströmmen
      // funkar  lite som cin fast istället att källan är användaren är den
      // strängströmmen
      v.push_back(person(name, hours, mins, seconds));
    }
  }

  return v;
}

something is not working then i try to use pushback on the vector

jonte.y
floral widget
#

actully noticed the ptoblem now

covert walrus
#

You are trying to push a person into a vector of strings

floral widget
#

i should do vector <person> right? not vector < string>

floral widget
#

int main()
{
// skriv ut allt i rätt format och kalla på funktionerna här

cout << openfile() << endl;

}
any idea why this does not work?

#

@covert walrus

covert walrus
#

You can't just print a vector*, you will need to make a manual print function and format it the way you want

floral widget
#

oh understood thanks

flint roverBOT
#

@floral widget Has your question been resolved? If so, type !solved :)

floral widget
#

!solved