Pomoc oko zadatka u C-u

poruka: 6
|
čitano: 2.268
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Pomoc oko zadatka u C-u

Ovako, imam slijedeci jedan zadatak s kojim imam problema, tj ne znam ga rijesiti :P ako moze mala pomoc:

 

/* 1) Napisati C program koji formira datoteku ULAZ za čitanje i pisanje te u nju upisuje neki:

a) String (s tipkovnice) zatim čita taj string iz te datoteke znak po znak i upisuje ga u drugu datoteku IZLAZ, ali tako da iza svakog znaka stavi razmak.
b) Niz cijelih parnih brojeva od 0 do n (n učitati s tipkovnice) zatim taj niz čitati iz datoteke i upisati ga u drugu datoteku IZLAZ, ali tako da svaki broj podijeli s 2.
c) String (s tipkovnice) zatim iz te datoteke čita taj string, ali samo svaki drugi znak i upisuje ga u drugu datoteku IZLAZ.
d) Niz cijelih brojeva od 0 do k (k učitati s tipkovnice) zatim taj niz čitati iz te datoteke i upisati ga u drugu datoteku IZLAZ, ali tako da svaki broj pomnoži s 3.

Zatim pročita sadržaj datoteke IZLAZ i ispiše ga na monitor.
*/


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

int main()
{
char str1[100];
FILE *p, *o;
int c, broj, i;
char razmak;
razmak=32;
p=fopen("ulaz.dat", "w+");
o=fopen("izlaz.dat", "a+");
printf("Unesite string u datoteku ULAZ:\n");
scanf(" %s", &str1);
fputs(str1, p);
fseek(p, 0, SEEK_SET);
while((c=fgetc(p)) !=EOF){
fputc(c, o);
fputc(razmak, o);}

fclose(p);

p=fopen("ulaz.dat", "w+");
printf("Unesite parni broj do kojeg zelite da niz ide:\n");
scanf("%d", &broj);

for(i=0; i<=broj; i=i+2){
fputc(i, p);
}

fseek(p, 0, SEEK_SET);
while((c=fgetc(p)) !=EOF){
  fputc(c/2, o);
fputc(razmak, o);}

fclose(o);
fclose(p);
return 0;
}

 

 

 

dosao sam do b) dijela zadatka, i njega nemogu napraviti da radi pa ako moze mala pomoc bio bih zahvalan.

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoc oko zadatka u C-u

bump

14 godina
neaktivan
offline
Pomoc oko zadatka u C-u

Zapravo si katastrofalno objasnio sto se trazi, kates sa tipkovnice onda to isto iz datoteke ???

No dobro, dati cu ti par savjeta i reci za par bugova.

 

Array (string) u C-u je vec pointer dakle scanf( "%s", str );  ne scanf( "%d", &str );

Koristi fprintf, puno je veca varijabilnost koristenja napr.

 

fscanf( ulaz, "%s", str );
for ( i = 0; i < strlen(str); ++i )
    fprintf( izlaz, "%c ", str[i] );

for ( i = 0; i <= N; i += 2 ) // ispis parnih od 0 do N
    fprintf( izlaz, "%d ", i / 2 ) ;

tako mozes ispisati string da svaki znak razmaknes i parne brojeve / 2.

Koristi fscanf također, i nije mi jasno zasto se stalno vracas na pocetak datoteke. (ako je to zadatak, znemari).

 

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoc oko zadatka u C-u

a i ja sam ovako dobio zadan zadatak na zalost ali trebalo bi uradit ovo:

 

ucitati u prvu datoteku (ulaz.dat) niz parnih brojeva od 0 do "n" tako da u tipkovnicu unesemo "n" - to sam predpostavio da trebam uradit s for petljom ( "for(i=0; i<=n, i=i+2)" uz predpostavku da je "n" unesen kao parni broj)

 

tu zapravo dolazim do problema, ne znam kako da te brojeve ubacim u datoteku

pokusao sam ispod petlje staviti   fputc(i, p); ali to ne ide.

 

uglavnom, nakon sto taj niz upisem u prvu datoteku, iz nje ih trebam prepisati u drugu. Taj dio mislim da znam. Pa ako bi mi mogli pomoci s upisivanjem u prvu bio bih zahvalan.

 

Poruka je uređivana zadnji put sub 9.7.2011 21:35 (Mariossa).
14 godina
neaktivan
offline
Pomoc oko zadatka u C-u

Ah, kako odgovoriti na ovako debilan zadatak.

Ali mislim da si komotno mogao iskoristiti ono sto sam vec napisao.

Dakle unses N sa tipkovnice, onda parne ubacis u "ulaz" onda iz ulaza prebacis u "izlaz" tako da ih podjelis sa 2 ???

Ako je to to onda evo :

 

int N, i;
scanf( "%d", &N );
for ( i = 0; i <= N; i += 2 )
    fprintf( ulaz, "%d ", i );
for ( i = 0; i <= N; i += 2 ) {
    int x;
    fscanf( ulaz, "%d", &x );
    fprintf( izlaz, "%d ", x / 2 );
}

 

Ako nije onda koristi ovo sto sam napisao, jer rekao si da nisi siguran kako napraviti ispis upis.

Kani se fputc vec sam ti rekao !

 

EDIT: ako treba vidim da znas se rabiti sa fseek, pa onda se mozes gibati po datoteci :)

Poruka je uređivana zadnji put sub 9.7.2011 21:47 (Budimir).
 
0 0 hvala 1
17 godina
neaktivan
offline
Re: Pomoc oko zadatka u C-u

uspio sam, hvala :D ako kad budes u osijeku javi, imas cugu!

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice