Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jos jedno cudno pitanje

[es] :: C/C++ programiranje :: Jos jedno cudno pitanje

[ Pregleda: 3128 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Leticija

Član broj: 58031
Poruke: 10
*.adsl.net.t-com.hr.



Profil

icon Jos jedno cudno pitanje16.05.2005. u 22:43 - pre 229 meseci
Htjela bi poslat jednu poruku frendu, cisto jednostavan program u c-u koji ce mi ispisivat tekst na ekran. Jedan sastavak, tak da mi treba polagano ispisivanje, eventualno slovo po slovo il redak po redak. Nakon izvodenja programa jednom, htjela bi da se pokrene njegovo samounistenje. (Ne zelim da mu taj tekst ostane na compu u bilo kojem obliku!!!) Razgovarala sam s frendom i reko mi je da postoji neka naredba za brisanje programa, al da moram znat tocnu lokaciju di ce on bit spremljen.
ANY HELP?
 
Odgovor na temu

sekretar SkOJ-a
Darko Bogunovic
Bgd

Član broj: 24918
Poruke: 22
*.adsl.sezampro.yu.



Profil

icon Re: Jos jedno cudno pitanje17.05.2005. u 00:20 - pre 229 meseci
Pazi, generalno, postoji naredba za brisanje obracanjem OS-u, moras koristiti stdlib.h i kucas system("del <lokacija na hard disku>";

Medjutim kod tebe je problem sto dok tvoj program izvrsava tu naredbu, on radi, a nije moguce brisati program koji se koristi!!
Zato ti preporucujem da napravis dodatni program koji bi pozivao tvoj program sa porukom, a cim se zavrsi njegovo izvrsavanje pozivao batch fajl za brisanje prethodnog programa. Tvoj korsnik bi naravno otvarao taj dodatni program.
Taj dodatni program bi mogao ovako da izgleda (mrzelo me je da kompajliram, pa mozda ima gresaka):

#include <stdio.h>
#include <iostream> /* ako radis iz c++ */
#include <stdlib.h>
int main()
{
system("<ime programa za poruku.exe>"); /*ako su u istom folderu */
system("del <lokacija programa sa porukom>);

return 0;
}

Tako ce nakon prvog izvrsavanja dodatnog programa, njemu ostati da ovih par linija koda, a kad ga sledeci put pokrene dobice poruku o gresci jer nema ovog programa sa porukom
Pretpostavljam da program sa porukom znas sama da napises, tako da ti tu ne treba pomoc.
Ne znam da li si na ovo mislila, ali se nadam da sam pomogao...

Nista na vrat, na nos, ni na svoju ruku
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Jos jedno cudno pitanje17.05.2005. u 09:12 - pre 229 meseci
Aplikaciji nije moguce da sama sebe obrise, ali batch fajlu jeste. Zato

na kraju izvrsenja aplikacije napravi .bat fajl koji ce u petlji brisati

aplikaciju sve dok ne uspe, i na kraju obrisati i sebe (sa "del %0").

Pokreni .bat fajl, izadji iz aplikacije, i sve ce biti obrisano.
 
Odgovor na temu

rumpl

Član broj: 54959
Poruke: 156
*.net81-65-34.noos.fr.



Profil

icon Re: Jos jedno cudno pitanje17.05.2005. u 11:24 - pre 229 meseci
Mozes ti da izbises tvoj program, ali tekst ce jos uvek ostati na ekranu, nista lakse od jednog copy/paste-a...

Treba i o tome malo da porazmislis...
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
 
Odgovor na temu

BIG FOOT

Član broj: 2964
Poruke: 449
*.yu
Via: [es] mailing liste



Profil

icon Re: Jos jedno cudno pitanje26.06.2005. u 05:24 - pre 228 meseci
Da ne otvaram novu temu:
Da li je iz, iz ugla memorijske i vremense racionalnosti, isto ako niz
deklarisemo kao a[], a[100] i *a

Nov sam u C-u, ali mi ovo izgleda kao ne-ekvivalentno.

BF
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Jos jedno cudno pitanje28.06.2005. u 14:31 - pre 228 meseci
ne. niz nemozes deklarirat kao a[], zato sto kompajer nezna koliko ima elemenata u nizu. a[] mozeskoristit kao ulazni element funkcije, npr.

Code:
 void ispisi(int a[], int broj_elemenata); 


kad ti treba funkcija koja ce radit s poljem integera s bilo koliko elemenata, a prosljedis broj elemenata u funkciju kao drugu varijablu.

a[100] deklarira polje integera od 100 elemenata. ti elementi su u memoriji jedan iza drugog. znaci, ti zauzimas memoriju od 400 byteova za tvoj niz (int = 4 bytea). ovo je efikasno ako imas polje koje ima fiksno 100 elemenata u tvom programu. dakle nije dobro ako ti treba vise ili manje od 100 elemenata u polju. ako ti treba vise, nemozes nikako redimenzionirati ovo polje, a ako ti treba manje, imas bezveze zauzetu memoriju.

*a deklarira pokazivac na neki tip podataka(recimo int). dinamicka polja (tj. ona kojima se moze mjenjati velicina) se izradjuju na ovaj nacin. dakle, jedan pointer na tip integera pokazuje na neku memorijsku adresu gdje se nalazi jedan integer. polje se realizira ovako

Code:

    int *a, brojelemenata = 5;
    a = (int *)malloc(sizeof(int) * brojelemenata);
    a[4] = 2; [i]//isto koristis kao i normalno polje[/i]




Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Jos jedno cudno pitanje

[ Pregleda: 3128 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.