Slettet bruger
26. november 2001 - 12:20
Der er
11 kommentarer og 3 løsninger
Vector med objecter
Jeg skal have fyldt en vector med objekter. Mit program ser således ud: //åbner en fil ifstream File; File.open(filename.c_str()); char line[2000]; char * pch; while(File.eof()) { Incident newIncident; //Læs første linie NessusFile.getline(line, 2000); //Inddel i tokens og indsæt i object pch = strtok (line,\"|\"); if(pch == NULL) break; newIncident.SetIP(pch); pch = strtok (NULL, \"|\"); pch = strtok (NULL, \"|\"); newIncident.SetID(pch); vector_incident.push_back(newIncident); } for(int i = 0; i < 10; i++) cout << vector_incident[i].GetIP(); } Når jeg køre den sidste for løkke er vectoren tom. Hvad gør jeg galt??
Annonceindlæg fra Barco
26. november 2001 - 12:24
#1
skal du ikke skrive File>>NessusFile.getline og ikke NessusFile.getline(line, 2000);
26. november 2001 - 12:25
#2
hvor opretter du dit vector object ?
26. november 2001 - 12:25
#3
Du bruger slet ikke File>> til at læse ind nogle steder
26. november 2001 - 12:36
#4
Hvad med while(!File.eof()) istedet for while(File.eof())
Slettet bruger
26. november 2001 - 12:43
#5
Der er intet i galt med fillæsningen, det virker fint hvis jeg skriver værdierne ud inde i while løkken. Jeg opretter min vector i .h: public: vector<Incident> vector_incident;
26. november 2001 - 12:45
#6
som jpk skrive er din while() forkert. ligenu gør den noget sålænge EOF er nået !!
26. november 2001 - 12:54
#7
JPK har helt ret prøv det så virker det
Slettet bruger
26. november 2001 - 13:20
#8
Har prøvet, stadig det samme : (
26. november 2001 - 13:22
#9
så debug dig igennem koden og se hvor det går galt, eller start forfra og tænkt problemmet igennem igen. Hjælper ret tit.
26. november 2001 - 13:24
#10
Er du sikker på di vector er tom? Du kan fx prøve: cout << vector_incident.size() << endl; Prøv også at sætte endl på i dine andre outputs, for at sikre at bufferen bliver tømt!
26. november 2001 - 13:30
#11
Har du implementeret en copy-constructor for Incident?
26. november 2001 - 13:32
#12
Hvorfor bruger du 2 forskellige streams??? File og NessusFile det er lidt noget rod! Du læser fra den ene, så længe den anden er eof - det giver ingen mening!
26. november 2001 - 13:34
#13
jpk: som jeg skrev, slet det hele og tænkt det igennem først.
26. november 2001 - 15:04
#14
Lad os se definitionen af klassen Incident
Kurser inden for grundlæggende programmering