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

system (naredba) ???

[es] :: C/C++ programiranje :: system (naredba) ???

[ Pregleda: 2726 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 878
*.dialup.blic.net.



+148 Profil

icon system (naredba) ???03.01.2006. u 10:47 - pre 222 meseci
Možda je ovo više pitanje sintakse dos-a (tacnije comand prompta) ali zasto mi ovaj programčić ne radi?

Code:
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{     
    char funkc[]="copy ";  
    char lok[]=" c:\\Documents and Settings\\All Users\\"
                  "Start Menu\\Programs\\Startup\\proba.exe";                     
    int duzina=strlen(funkc)+strlen(argv[0])+strlen(lok);
    char naredba[duzina];    
    for (int i=0; i<strlen(funkc); i++)
        naredba[i]=funkc[i];
    for (int i=0; i<=strlen(argv[0]); i++)
        naredba[i+strlen(funkc)]=argv[0][i];
    for (int i=0; i<strlen(lok); i++)
        naredba[strlen(argv[0])+strlen(funkc)+i]=lok[i];
    naredba[duzina]='\0';                   
    cout << naredba << endl;
    system (naredba);    
    system ("pause");
          
    return 0;
}

Htio sam jednostavno da napravim naredbu koja ce da kopira sam program u, recimo startup... E sad kada za varijablu char lok[] stavimo npr "c:\proba.exe", progam radi dobro i iskopira se na tu lokaciju. Međutim ako je putanja malo duža onda mi prijavi grešku u sintaksi?


 
Odgovor na temu

Buffy
Stanko Culaja
Sipovo, BiH

Član broj: 45310
Poruke: 312
*.teol.net.



Profil

icon Re: system (naredba) ???03.01.2006. u 11:42 - pre 222 meseci
Zasto ne koristis sprintf funkciju. Vjerovatno je greska u ovim tvojim for petljama.
Primjer koristenja sprintf-a:
Code:

#include <stdio.h>
#include <string.h>

int main(){
    char a[]="Stanko";
    char b[]="Culaja";
    char *c=new char[strlen(a)+strlen(b)];
    //**************************************
    sprintf(c,"ime: %s\nprezime: %s\n",a,b);
    printf(c);
    return 0;
}



Kao sto vidis funkcija sprintf je slicna funkciji printf i dosta olaksava posao jer umjesto nekoliko tvojih for petlji dovoljan je jedan poziv sprintf-a.
Pozdrav!
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 878
*.dialup.blic.net.



+148 Profil

icon Re: system (naredba) ???03.01.2006. u 16:20 - pre 222 meseci
Dobro, sa scanf je stvarno lakše, ali suština problema je opet ista... Ne znam gdje da postavim ovo pitanje ali ono glasi: Zasto mi u command promptu ovo naredba ne radi:
Code:
copy c:\proba.exe c:\documents and settings\proba.exe

Stalno mi prijavljuje sintax error.

 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: system (naredba) ???03.01.2006. u 16:53 - pre 222 meseci
Probaj sa navodnicima

Code:
copy "c:\abc" "c:\documents and settings\abc"

Ipak se ++uje.
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 878
*.dialup.blic.net.



+148 Profil

icon Re: system (naredba) ???04.01.2006. u 17:54 - pre 222 meseci
To je to, sad sve radi. Hvala!

 
Odgovor na temu

[es] :: C/C++ programiranje :: system (naredba) ???

[ Pregleda: 2726 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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