Kezdőoldal » Számítástechnika » Programozás » C fájlkezelésben kérhetnék...

C fájlkezelésben kérhetnék egy kis segítséget?

Figyelt kérdés

Kicsit hosszabb a program, nemtudom mennyire átlátható. A problémám az, h a páros/páratlan ASCII kódú elemeket kell két külön fájlba átmásolni. Amikor csak a párosokat akarom akkor meg is csinálja, viszont amikor ugyanúgy megírom a páratlanra is, akkor már nem csinálja. Lehet olyan gond, h túl sok a változó és azért hülyül meg? win alatt csinálom.


program:

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <string.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <io.h>


int main()

{

int fh;

int fh2;

int fh3;

int fg;

int a;

int b;

int d;

int i;

int j=0;

int k;

int m;

char c[20]={0};

char q[20]={0};

char w[20]={0};

char s[]="Kis Pista";

fh=open("adat1.txt",O_RDWR | O_CREAT | O_TRUNC | O_BINARY | S_IWRITE | S_IREAD);

fh2=open("adat2.txt",O_RDWR | O_CREAT | O_TRUNC | O_BINARY | S_IWRITE | S_IREAD);

fh3=open("adat3.txt",O_RDWR | O_CREAT | O_TRUNC | O_BINARY | S_IWRITE | S_IREAD);

a=write(fh,s,strlen(s));

close(fh);


fg=open("adat1.txt",O_RDWR | O_BINARY);

b=read(fg,c,20);

printf("tartalma: %s\n",c);

for(i=0;i<20;i++)

{

d=c[i];

if(d%2==0)

{

q[j]=c[i];

j++;

}

}

k=write(fh2,q,20);

j=0;

for(i=0;i<20;i++)

{

d=c[i];

if(d%2==1)

{

w[j]=c[i];

j++;

}

}

m=write(fh3,w,20);


close(fg);


return 0;

}


2013. szept. 24. 16:34
 1/4 A kérdező kommentje:
hát igen, mindent a sor elejétől kezdett, meg én is csak random betűket használtam, de hátha valaki:D
2013. szept. 24. 16:35
 2/4 anonim ***** válasza:

Túl sok változó LoL, szerinted egy oprendszer kódjában hány változó van?

Valamint a fene se fogja elemezgetni ezt a fost, abc változókkal, írd meg rendesen, úgy talán te is rájössz majd a hibára...

2013. szept. 24. 17:02
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:
most már mind1... átmásoltam az egész kódot egy új fájlba semmi. Megint átmásoltam egy másikba semmi. Kb 4-5 alkalomra meg működött...
2013. szept. 24. 17:08
 4/4 SimkoL ***** válasza:

#include <stdio.h>

#include <stdlib.h>


int main()

{

FILE *fh;

FILE *fh1;

FILE *fh2;

int ch;

char s[]="0123456789abcdef";

fh = fopen("adat1.txt", "w+");

fh1 = fopen("adat2.txt", "w+");

fh2 = fopen("adat3.txt", "w+");

fprintf(fh,"%s", s);

printf("Tartalma: %s\n", s);

fclose(fh);

fh = fopen("adat1.txt", "r");

while((ch = getc(fh)) != EOF)

{

if (ch%2==1) putc(ch, fh2); else putc(ch, fh1);

}

fclose(fh);

fclose(fh1);

fclose(fh2);

return 0;

}

2013. szept. 24. 22:53
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!