[ Dovla84 @ 24.10.2009. 19:43 ] @
dobio sam od druga neki seminarski koji mi sluzi kao primer ali ne znam kako da ga pokrenem.U stvari ne znam kako da otvorim fajlove za citanje.Evo dela koda koji se odnosi na otvaranje fajla:
Code:

main(int argc,char* argv[])
{

    FILE *in,*out;
    struct cvor * pc=NULL;
    char * vrednosti;
    int i,prvi_clan;

     if(argc>1)
     {
         in=fopen(argv[1],"r");
         if(in==NULL)
         {
             printf("\nNe mogu da otvorim %s .",argv[1]);
             exit(EXIT_FAILURE);
         }
     }
     else in=stdin;

     if(argc>2)
     {
         out=fopen(argv[2],"w");
         if(out==NULL)
         {
             printf("\nNe mogu da otvorim %s .",argv[2]);
             exit(EXIT_FAILURE);
         }
     }
     else out=stdout;


Mene ovde zanima kako da mu zadam da otvori odredjeni fajl jer koliko vidim main funkcija ocekuje argc sto bi bio broj clanova nisa i ocekuje argv -clonove nisa odnosno imena datoteka ali kada probam tako nista se ne desava.Nisam navodio putanju a fajlovi se nalaze u istom direktorijumu kao i program. Hvala u napred

[Ovu poruku je menjao X Files dana 24.10.2009. u 21:42 GMT+1]
[ Mihajlo Cvetanović @ 24.10.2009. 20:50 ] @
Da li radi ako normalno pokreneš program, na dabl-klik?
[ Dovla84 @ 24.10.2009. 21:51 ] @
ne radi.otvori se prozot kao command promt zamo bez icega,samo kursor trepce.Cudno mi je to sto ne izbacuje gresku sta god da unesem.
[ Mihajlo Cvetanović @ 25.10.2009. 01:35 ] @
Nije čudno, ako pokreneš exe bez parametara onda moraš da ukucavaš ulazne podatke, i na ekranu ćeš dobiti rezultat rada programa (stdin je tastatura, stdout je konzola tj. ekran). Moguće je da program ne vidi fajlove kad debaguješ jer je aktivni direktorijum u tom slučaju onaj gde je projekat, a ne gde je exe. Premesti ulazne fajlove u folder gde je projekat. Nisi naveo koji IDE koristiš, teoretski je moguće da aktivni direktorijum bude i tamo gde je debager za dotični IDE. U Visual C++ možeš da podesiš "Working Directory" pri debagovanju, a ako koristiš neki drugi IDE, verovatno može i u tom drugom.
[ Dovla84 @ 25.10.2009. 19:06 ] @
Kada ga pokrenem iz command promta on trazi ulazne podatke i kad ih unesem prikaze mi rezultat.Ako samo dva puta kliknem na .exe on se pokrene,ja unesem podatke i on se iskljuci.Probao sam sa premestanjem ulaznog i izlaznog fajla ali nece da ga ucita.Nemam pojma sta da radim.Koristim TURBO C ko zna koju verziju (pokrece se preko dos-a) jer tako zahteva profesor :(
[ X Files @ 25.10.2009. 19:30 ] @
1. Kompajliraj ovaj kod:
Code:

#include <stdio.h>
#include <stdlib.h>

int main(int argc,char* argv[])
{

    FILE *in,*out;
    struct cvor * pc=NULL;
    char * vrednosti;
    int i,prvi_clan;

    if(argc>1)
    {
        in=fopen(argv[1],"r");
        if(in==NULL)
        {
            printf("\nNe mogu da otvorim %s .",argv[1]);
            exit(EXIT_FAILURE);
        }
    }
    else in=stdin;

    if(argc>2)
    {
        out=fopen(argv[2],"w");
        if(out==NULL)
        {
            printf("\nNe mogu da otvorim %s .",argv[2]);
            exit(EXIT_FAILURE);
        }
    }
    else out=stdout;

    return 0;
}


2. Pronadji gde je kreiran EXE i u isti folder kopiraj MAIN.C, ako vec nije u istom folderu.

3. Pokreni Total Commander, i pozicioniraj se na folder gde su EXE i MAIN.C

4. U komandnoj liniji Total Commander-a (iznad Funkcijskih tastera), ukucaj: 1.exe main.c main.txt
(1 je naziv izvrsnog fajla, ti naravno, napisi svoj)

5. Ako se kreira MAIN.TXT, onda je sve u redu.



U svakom slucaju, bolje skini MinGW:
http://www.elitesecurity.org/p1914937

Inace, kada je bilo nametnuto da se nesto testira iz DOS-a, ja nisam mogao da zivim bez Norton Commandera, pa ga i tebi savetujem. To file manager, preteca Total Commandera.