Forum » Programiranje » [C++]Brisanje strukture
[C++]Brisanje strukture
jernejf ::
LP!
Prosim za malo pomoč
Imam program, kjer vnašam, spreminjam in brišem strukturo s pomočjo kazalcev.
No vglavnem...nevem kako bi naj izbrisal.
Del programa:
Program deluje, vendar kot povedano nevem kako izbrisati. Verjetno je potrebno z seznami, vendar se trudim že 2 dni, tak da res
Hvala
Aja. A se da kako naredit da bi vpisaval tiste smerne puščice, cout *** endl;, ker zaj vedno moram brisati?
[edit - ne bos verjel, ampak ja, se da... le PREBERI ME preberes... - vsc]
Prosim za malo pomoč
Imam program, kjer vnašam, spreminjam in brišem strukturo s pomočjo kazalcev.
No vglavnem...nevem kako bi naj izbrisal.
Del programa:
struct vpis { char naslov[10]; char URL[100]; char opis[100]; char datum[11]; char avtor[20]; vpis* k_naslednji; }; int stevec = 1; void vnos(vpis* k_pod) { cin.ignore(); cout "Naslov spletne strani:" endl; cin.getline((*(k_pod+stevec)).naslov,10,'\n'); cout "URL spletne strani:" endl; cin.getline((*(k_pod+stevec)).URL,100,'\n'); cout "Opis strani:" endl; cin.getline((*(k_pod+stevec)).opis,100,'\n'); cout "Datum zadnje spremembe strani" endl; cin.getline((*(k_pod+stevec)).datum,11,'\n'); cout "Avtor strani:" endl; cin.getline((*(k_pod+stevec)).avtor,20,'\n'); cout endl; stevec++; } ... ... ... void izbris(vpis* k_pod) { int izbris; char izbira; cout "Kateri vnos zelite izbrisati?" endl; cin izbris; cin.ignore(); cout "Izbrisati zelite naslednji vnos:" endl; cout "Naslov spletne strani..............: " (*(k_pod+izbris)).naslov endl; cout "URL spletne strani.................: " (*(k_pod+izbris)).URL endl; cout "Opis strani........................: " (*(k_pod+izbris)).opis endl; cout "Datum zadnje spremembe strani......: " (*(k_pod+izbris)).datum endl; cout "Avtor strani.......................: " (*(k_pod+izbris)).avtor endl; cout endl; cout " D - zbrisi, N - ne zbrisi" endl; cin izbira; if(izbira == 68 || izbira == 100) { ?????????????????????????????????????????? ?????????????????????????????????????????? ?????????????????????????????????????????? } else if(izbira == 78 || izbira == 110) cout "Vnos ni bil izbrisan" endl; else cout "Vpisi D ali N !" endl; } void main() { vpis* k_podatki; k_podatki =new vpis[1000]; ... ... case '1': { vnos(k_podatki); break; } case '2': { sprememba(k_podatki); break; } case '3': { izbris(k_podatki); break; } case '4': { izpis(k_podatki); break;
Program deluje, vendar kot povedano nevem kako izbrisati. Verjetno je potrebno z seznami, vendar se trudim že 2 dni, tak da res
Hvala
Aja. A se da kako naredit da bi vpisaval tiste smerne puščice, cout *** endl;, ker zaj vedno moram brisati?
[edit - ne bos verjel, ampak ja, se da... le PREBERI ME preberes... - vsc]
- spremenil: Vesoljc ()
jerac ::
Si se mogoče vprašal zakaj imaš v strukturi vpis* k_naslednji; ? Verjetno moraš implementirati dinamični seznam. To kar maš ti pa je dinamično polje.
jernejf ::
Ja nevem če moram...Jaz sem to dodal ko sem sprobaval nekaj. A se da kako drugače?...Ker mislim da ni mišljeno rešit z seznamom.
jernejf ::
Probal sem naslednje pa ni šlo:
Vstavljeno tja kjer so vprašaji.
int i = izbira;
for(i; i (manjse)= stevec; i++)
{
strcpy((*(k_pod+i)).naslov, (*(k_pod+(i+1))).naslov);
strcpy((*(k_pod+i)).URL, (*(k_pod+(i+1))).URL);
strcpy((*(k_pod+i)).opis, (*(k_pod+(i+1))).opis);
strcpy((*(k_pod+i)).datum, (*(k_pod+(i+1))).datum);
strcpy((*(k_pod+i)).avtor, (*(k_pod+(i+1))).avtor);
}
Torej da bi od tistega vnosa katerega iščem pa do konca "premaknil" celo strukturo in tako povozil tisto prejšnjo. Vse ostale bi se premaknile za eno "niže", zadnja bi se pa tako povozila. No samo ideja ki očitno ni dobra.
EDIT: Namesto navadne prireditve sem dal strcmp. No vsaj prevede, dela pa vseeno ne
Vstavljeno tja kjer so vprašaji.
int i = izbira;
for(i; i (manjse)= stevec; i++)
{
strcpy((*(k_pod+i)).naslov, (*(k_pod+(i+1))).naslov);
strcpy((*(k_pod+i)).URL, (*(k_pod+(i+1))).URL);
strcpy((*(k_pod+i)).opis, (*(k_pod+(i+1))).opis);
strcpy((*(k_pod+i)).datum, (*(k_pod+(i+1))).datum);
strcpy((*(k_pod+i)).avtor, (*(k_pod+(i+1))).avtor);
}
Torej da bi od tistega vnosa katerega iščem pa do konca "premaknil" celo strukturo in tako povozil tisto prejšnjo. Vse ostale bi se premaknile za eno "niže", zadnja bi se pa tako povozila. No samo ideja ki očitno ni dobra.
EDIT: Namesto navadne prireditve sem dal strcmp. No vsaj prevede, dela pa vseeno ne
Zgodovina sprememb…
- spremenil: jernejf ()
jernejf ::
A noben neve/noče pomagat. Samo če se da to drugače naredit ali gre samo z dinamičnim seznamom. Da potem grem tisto študirat...čeprav nam še o tem nios razlagali
Prosim no
Prosim no
Vesoljc ::
ce za polje ni pomembno da je urejeno, potem uporabi svoj stevec, ki ti pove koliko elementov je dejansko v polju (n od 1000 alociranih). ce moras potem enega izbrisati, premaknes zadnjega na njegovo mesto, stevec pa zmanjsas za eno. to pac pomeni kopiranje vsebine in glede na to da uporabljas fiksne strukture (polja vnaprej dolocenih velikosti) lahko naceloma uporabis tudi memcpy funkcijo.
Abnormal behavior of abnormal brain makes me normal...
Zgodovina sprememb…
- spremenil: Vesoljc ()
Vesoljc ::
za tale strcpy pa res ne vem kaj kompliciras
strcpy c++ reference
strcpy c++ reference
Abnormal behavior of abnormal brain makes me normal...
jernejf ::
Zakaj kompliciram? Drug niz kopiram v prvega. Tako sem si mislil:
Če hočem izbrisati npr. 5 vnos in je vseh vnosov 7, potem kopiram 7 vnos v 6 in 6 v 5.
Pozabil sem edino zmanjšati števec po kopiranju. Bom probal zaj. Najlepša hvala
EDIT: Dela tako...prej pa ni ker sem pozabil števec zmanjšati. Najlepša hvala vesoljc Se priporočam
Če hočem izbrisati npr. 5 vnos in je vseh vnosov 7, potem kopiram 7 vnos v 6 in 6 v 5.
Pozabil sem edino zmanjšati števec po kopiranju. Bom probal zaj. Najlepša hvala
EDIT: Dela tako...prej pa ni ker sem pozabil števec zmanjšati. Najlepša hvala vesoljc Se priporočam
Zgodovina sprememb…
- spremenil: jernejf ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | programiranje krožek(pomoč)Oddelek: Pomoč in nasveti | 2789 (1777) | Marat |
» | vprasanje c++Oddelek: Programiranje | 2491 (2490) | Volk| |
» | [C++]StruktureOddelek: Programiranje | 4053 (3982) | jernejf |
» | [c++] uporaba char*Oddelek: Programiranje | 1013 (890) | zavger |
» | c++ datotekeOddelek: Programiranje | 4067 (3556) | Vesoljc |