kopírovanie súborov

Programovacie jazyky, rady, poradňa...
juruces
Amateur
Amateur
Príspevky: 23
Registrovaný: 19 nov 2013, 15:58

kopírovanie súborov

Príspevok od používateľa juruces »

Čaute mám na úlohu
Napíšte program kopíruj , ktorý pomocou parametrov príkazového riadku prekopíruje obsah jedného súboru do druhého!

Vstup: textový súbor zdroj.txt

Výstup: textový súbor kopia.txt

Zápis v príkazovom riadku: kopíruj.exe zdroj.txt kopia.txt
Mám napísané , ale spadne mi to a neviem čo s tím .

Kód: Vybrať všetko

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

int main(int argc, char** argv)
{
    FILE *fr;
    FILE *fw;
    char prevod;

    if((fr=fopen("zdroj.txt","r"))==NULL)//otvaranie a testovanie ci sa subor podarilo otvorit
    {
        printf("Subor sa nepodarilo otvorit!");
        return 1;
    }
    if((fw=fopen("kopia.txt","w"))==NULL)//otvaranie a testovanie ci sa subor podarilo otvorit
    {
        printf("Neexistuje!");
        return 1;
    }
    if(argc==3)
    {
        prevod=fputc((int) prevod,fopen("kopia.txt","w")) == EOF;
        puts("Chyba pri kopirovani");
    }
    else
    {
        (fr=fopen("zdroj.txt","r") != 0) && (fopen("kopia.txt","w") != 0) && (prevod != EOF);
        puts("Kopirovanie prebehlo uspesne");
    }
    fclose(fr);
    fclose(fw);

    return 0;
}
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: kopírovanie súborov

Príspevok od používateľa BX »

Za prvé, fr a fw ti stačí otvoriť raz, čo tam robí toľko krát fopen? Otvoríš raz, skonroluješ, či sa to podoarilo a ďalej pracuješ s tým.
Za druhé, podľa zadania máš vziať mená súborov z parametrov aplikácie. Tie získaš z poľa argv. Nemáš tam mať napevno zdroj.txt a kopia.txt
Za tretie, samozrejme že to spadne. Skús to najprv napísať poriadne (naprav prvé dve chyby) a potom pôjdeme ďalej.
juruces
Amateur
Amateur
Príspevky: 23
Registrovaný: 19 nov 2013, 15:58

Re: kopírovanie súborov

Príspevok od používateľa juruces »

to prvé by som mal a to druhé ako mám získať z poľa argv ?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: kopírovanie súborov

Príspevok od používateľa BX »

argc udáva počet argumentov a samotné argumenty sú v poli argv. V tomto prípade by mali byť tri (meno exe súboru, súbor na skopírovanie a súbor na kópiu) Takže argc bude 3 a argv bude argv[1]="zdroj.txt", argv[2]="kopia.txt";
Takže tie mená súborov jednoducho zoberieš ako argv[1] a argv[2]

Potom pošli kód :)
juruces
Amateur
Amateur
Príspevky: 23
Registrovaný: 19 nov 2013, 15:58

Re: kopírovanie súborov

Príspevok od používateľa juruces »

takže takto ?

Kód: Vybrať všetko

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

int main(int argc, char** argv)
{
    FILE *fr;
    FILE *fw;
    char prevod;


    if((fr=fopen("zdroj.txt","r"))==NULL)//otvaranie a testovanie ci sa subor podarilo otvorit
    {
        printf("Subor sa nepodarilo otvorit!");
        return 1;
    }
    if((fw=fopen("kopia.txt","w"))==NULL)//otvaranie a testovanie ci sa subor podarilo otvorit
    {
        printf("Neexistuje!");
        return 1;
    }
    argv[1]="zdroj.txt";
    argv[2]="kopia.txt";

    if(argc==3)
    {
        prevod=fputc((int) prevod,argv[2]) == EOF;
        puts("Chyba pri kopirovani");
    }
    else
    {
        (argv[1]!= 0) && (argv[2] != 0) && (prevod != EOF);
        puts("Kopirovanie prebehlo uspesne");
    }
    fclose(fr);
    fclose(fw);

    return 0;
}
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: kopírovanie súborov

Príspevok od používateľa BX »

Tak ešte raz. Pole argv už je naplnené. Pozri sem http://physics.ujep.cz/~mmaly/vyuka/oporaPrgB/042.html je to tam trochu viac popísané.

No a čože robí tento kód? Opíš mi ho.

Kód: Vybrať všetko

if(argc==3)
    {
        prevod=fputc((int) prevod,argv[2]) == EOF;
        puts("Chyba pri kopirovani");
    }
    else
    {
        (argv[1]!= 0) && (argv[2] != 0) && (prevod != EOF);
        puts("Kopirovanie prebehlo uspesne");
    }
juruces
Amateur
Amateur
Príspevky: 23
Registrovaný: 19 nov 2013, 15:58

Re: kopírovanie súborov

Príspevok od používateľa juruces »

no tak ten kód mám zle tiež som naň pozeral keď som ho spravil že je zle ale neviem ako ho zmeniť

//autoeditácia príspevku (08 Apr 2014, 18:40)
a mám 20 minut na odovzdanie súboru
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: kopírovanie súborov

Príspevok od používateľa pcsiete »

juruces napísal: a mám 20 minut na odovzdanie súboru
Blbé.
juruces
Amateur
Amateur
Príspevky: 23
Registrovaný: 19 nov 2013, 15:58

Re: kopírovanie súborov

Príspevok od používateľa juruces »

to je
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: kopírovanie súborov

Príspevok od používateľa pcsiete »

Skús toto

Kód: Vybrať všetko

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

int main(int argc, char** argv)
{
	FILE* fr = fopen(argv[1], "rb");
	FILE* fw = fopen(argv[2], "wb");
	
	int read;
	char* buf = (char*)malloc(4096);
	while((read = fread(buf, sizeof(char), 4096, fr))>0)
		fwrite(buf, sizeof(char), read, fw);
		
	fclose(fr);
	fclose(fw);
}
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: kopírovanie súborov

Príspevok od používateľa BX »

Joj pcsiete, máš príliš dobré srdce. To je niekedy na škodu, lebo teraz tam odovzdal niečo, čo nemá ani páru ako funguje...
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: kopírovanie súborov

Príspevok od používateľa pcsiete »

Aspoň bude sranda, keď napíše nabudúce.
Napísať odpoveď