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 tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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