Programiranje u C-u - od svega pomalo izdvojena tema

poruka: 1.661
|
čitano: 330.462
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
7 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Imam nekakav zadatak za faks:

Napisati C program koji s tipkovnice učitava 16-bitni binarni broj kao niz znakova (0 i 1)

u znakovno polje. Potrebno je izračunati i na ekran ispisati dekadski zapis učitanog

cijelog binarnog broja.

 

U biti znao bi napisati program s while petljom, ali cinimi se da to nije tocno rjesenje.

Moze pomoc ._.?

 
0 0 hvala 0
10 godina
offline
Re: Programiranje u C-u - od svega pomalo

@senpai

 

Frende imaš toga po netu kao pljeve na bacanje...

Malo proguglaš, proučiš, shvatiš, iskodiraš, te imaš rješenje...

Panzerkampfwagen.Unatoč svemu - Dinamo Zagreb.Leaving or dead, always ahead...
8 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Ako bi mi neko mogao pojasniti sta se ovdje ustvari radi:

 

    memcpy(B + n, B, sizeof(int)*n);

 

Zaguglah ali ne nadjoh ovakav slucaj, n se na pocetku unosi, pa onda n cijelih brojeva unesemo u niz B i onda ovo sto ne shvatam. Pa ako bi mi neko mogao objasniti sta ovo ustvari radi bio bih zahvalan.

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Kubalionzzale kaže...

Ako bi mi neko mogao pojasniti sta se ovdje ustvari radi:

 

    memcpy(B + n, B, sizeof(int)*n);

 

Zaguglah ali ne nadjoh ovakav slucaj, n se na pocetku unosi, pa onda n cijelih brojeva unesemo u niz B i onda ovo sto ne shvatam. Pa ako bi mi neko mogao objasniti sta ovo ustvari radi bio bih zahvalan.

 Prvu polovinu niza kopiraš u drugu polovinu niza.

Dakle alociraš 2n memorije i tom naredbom bytove iz prve plovine niza prebaciš u drugu.

 

#include<iostream>

using namespace std;



int main()
{
   int n = 4;
   int *niz = (int*)malloc(sizeof(int)* 2 * n);
   for (int i = 0; i < n; i++)
      cin >> niz[i];
   memcpy(niz + 4, niz, sizeof(int) * n);
   for (int i = 0; i < 2 * n; i++)
      cout << niz[i] << " ";
   free(niz);
   return 0;
}

Poruka je uređivana zadnji put pet 3.3.2017 14:36 (Floki).
10 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Kratko pitanje, ima netko neko instant riješenje kod preskakanja koraka u ispisivanju i unošenju strukturnih podataka.

Imam strukturu koju preko strukturne varijable odnosno polja upisujem određene podatke, unutar strukture kao "deklaracija" char polja varijable float i strukture u strukturama. Kada postavim funkcije za ispis u parovima sa funkcijama za unos (kod znakovnog polja ili stringa je to fgets, kod brojevnih varijabli tipa inteeger ili floatingpoint je to scanf sa %f formatom u prvom argumentu), događa mi se slučaj da u programu budu preskočene iste nazovimo ih parovne funkcije. Tražio sam riješenje sa getchar(); nakon svakog para i između scanf - fgets sa fflush(stdin);

Kako to u kodu izgleda ->

 


//pr.

#include <stdio.h>

int main(void){
  int i;
  struct datum{
    int dan, mjesec, godina;
  };
  struct zaposlenik{
     char ime[20];    //proizvoljno odredjena velicina polja za unos imena i prezimena regulirano s memorijom
     char prezime[20];
     char oib[12]     //oib sastojan od 11 znamenki te zadnji element polja za NULLZNAK '\0' ; da li je potrebno
     float placa;
     struct datum rodjenje;
  } zaposlenici[7];     //strukturna varijabla kao polje od 7 elemenata
  for (i = 0; i < 7; i++){
     printf("Ime %d. zaposlenika - ", i + 1);
     fgets(zaposlenici[i].ime, 20, stdin);
                                     <- preskok
     printf("Prezime %d. zaposlenika - ", i + 1);
     fgets(zaposlenici[i].prezime, 20, stdin);
                                     <- unos
     printf("OIB %d. zaposlenika - ", i + 1);
     fgets(zaposlenici[i].oib, 12, stdin);
                                     <- unos
     printf("Prosjecna placa %d. zaposlenika - ", i + 1);
     scanf("%f", &zaposlenici[i].placa);
                                     <- unos
     printf("D.m.y %d. zaposlenika - ", i + 1);
     scanf("%d.%d.%d, &zaposlenici[i].rodjenje.dan, &zaposlenici[i].rodjenje.mjesec, &zaposlenici[i].rodjenje.godina); //odreduje li tocka formatu %d
                                     <- unos
  }
  return 0;
}

Kreativnost se postiže repeticijom. Analogno, talent - radom.
Moj PC  
0 0 hvala 0
10 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

E,
da sam sebi odgovorim, a veći C eksperti neka ispravljaju :D

- funkcija scanf s formatom %s nije dovoljno dobra solucija za učitavanje stringa jer je jebu razmaci u istom. - čest slučaj zašto pri upisu stringova program preskoči neka polja i ne ponudi mogućnost upisa u njih, jer je upisani tekst ostao u STDIN steamu (prethodne naredbe) te će ga iduća naredba koja čita iz stdin-a pokupit i pokušat učitat, zar ne?
postoji li ta instant naredba već za skidanje buffera
->

while ((c = getchar()) != '\n' && c != EOF);

eof; end of file

- funkcija fgets učitava sve znakove u stringu do pojave znaka za novi red (enter) koji također sprema u polje na mjesto ispred null znaka pa je potreba ponekad izvršiti zamjenu pojedinog charactera - ovo je pitanje :D

ja sam to složio koristeći se string.h zaglavljem unutar koje se nalazi funkcija strlen za prolaz kroz string odnosno duljinu čitavog, i običnim if grananjem;
u kodu ->

unsigned int L = strlen(string);
if (string[L - 1] == '\n')
   string[L - 1] = '\0';

 

može li ta varijabla biti integer ako znam da će strlen po defaultu vratiti unsignedani integer, ne? kao indeks tog stringa postavit ću rezultat koji vraća strlen i smanjiti ga za 1, ako se na tom (novom) mjestu nalazi znak novog reda, postavit ću ga na null znak za kraj stringa. to će mi omogućit nesmetano rukovanje fgetsom i naredbama iza njega :D

pitanje, size_t ili unsigned int, koje su točne razlike

Kreativnost se postiže repeticijom. Analogno, talent - radom.
Moj PC  
0 0 hvala 0
10 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Zna li netko siguran algoritam za dinamičko zauzimanje memorije 2d polja. Pointeri u kombinaciji s mallocom.

Recimo kod ovog tipa ->

int **A;
int M, N, i, j;
do{
  printf("Broj redova: ");
  scanf("%d", &M);
} while(M < 2);
do{
  printf("Broj stupaca: ");
  scanf("%d", &N);
} while(N < 2);
*A = (int *)malloc(M);
for(i = 0; i < M; i++)
  A[i] = (int *)malloc(N * 4);
  //A[][]
for(i = 0; i < M; i++)
  free(A[i]);
free(A);

Pretpostavljam da to ide ovako - ovdje je M za polje, N za polje u M polju. U vrijednost pointera (*A) funkcija malloc vraća heap byte-ova reda veličine M. Petlja vrti od prvog (nulti indeks) do M kao broj redova ili "vanjskih" polja. U svakom pojedinom zautima opet hrpu od N * 4 byte-a (memorija pojedinog integera). Iduća for petlja za oslobodit svako unutarnje polje od prvog do M-tog (koji kurac?!). Na kraju oslobađanje čitave memorije. Kakva je deklaracija s dva operatora indirekcije?

int M, N, i, j;
int *A;
do{
   printf("Broj redova: ");
   scanf("%d", &M);
} while(M < 2);
do{
   printf("Broj stupaca: ");
   scanf("%d", &N);
} while(N < 2);
A = (int *)malloc(M * N * 4);
printf("Unesi elemente polja %d x %d:\n", M, N);
for(i = 0; i < M; i++){
   for(j = 0; j < N; j++){
     scanf("%d", (A + i * N + j));
     // &A[i * N + j]
     //printf("%4d ", A[i * N + j]);
   }
   //printf("\n");
}

Također broj redova u varijablu M, N kao broj stupaca ili polja u polju (promatram kao stupce bez obzira što se svako, pa tako i 2D polje, slijedno zapisuje u memoriji), ograničeno minimalnim unosom 2. Ovaj puta u pointer malloc vraća M * N * 4 byte-a (što bi odgovaralo za ukupni heap čitavog 2D polja)? Dalje su ugniježđene petlje za unos vrijednosti elemenata i to je to. Oslobađanja memorije nema.

int **A;
int i, j, m, n;
do{
   printf("Unesi broj redaka i stupaca polja: ");
   scanf("%d%d", &m, &n);
} while(m < 2 || n < 2);
*A = (int *)malloc(m * 4);
for(i = 0; i < m; i++)
   A[i] = (int *)malloc(n * 4);
   // A[][]

Deklaracija pointera **A - pretpostavljam da je to pokazivač na prvi pokazivač polja jer je ime svakog polja pokazivač na prvi element tog istog polja, zar ne? Nadalje ide unos dimenzija u varijable m x n. Prvi malloc će osigurati hrpu od m * 4 byte-a (broj redaka). Za isti broj redaka vrti petlju od prvog do m-tog gdje sprema u svaki novu hrpu od n * 4. To bi bilo ekvivalentno A[][].


Jesam li u pravu? Ima li netko nešto bolje; sigurnije, točnije? Bio bih zahvalan ako bi netko imao par min odvojiti da mi razjasni nejasnoće. :D

Kreativnost se postiže repeticijom. Analogno, talent - radom.
Moj PC  
0 0 hvala 0
7 godina
offline
Re: Programiranje u C-u - od svega pomalo
isuckatthisgame kaže...

Zna li netko siguran algoritam za dinamičko zauzimanje memorije 2d polja. Pointeri u kombinaciji s mallocom.

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

int main()
{
    int n,m;
    printf("Unesi n : ");
    scanf("%d",&n);
    printf("Unesi m : ");
    scanf("%d",&m);
    int **niz = (int**)malloc(n*sizeof(int*));
    for (int i = 0; i < n; i++) {
        niz[i] = (int*)malloc(m*sizeof(int));
    }
    printf("Unesi niz : ");
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d",&niz[i][j]);
        }
    }
    for (int i = 0; i < n; i++) {
        printf("\n");
        for (int j = 0; j < m; j++) {
            printf("%d ",*(*(niz+i)+j)); //ili niz[i][j];
        }
    }
    return 0;
}

Poruka je uređivana zadnji put pon 20.3.2017 21:54 (slavenP22).
10 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

ima li netko možda ideju kako da napišem program koji će pomoću rekurzije pisat znakove u datoteku na način da korisnik zadaje broj redova tih znakova, a svaki red treba ispisati u obliku 1 pa do tog broja koji je unesen.

uglavnom, u .txt fajl će upisati taj neki znak koji je određen u kodu, da u tom fajlu izgled bude trokut (kao ploha piramide)

Kreativnost se postiže repeticijom. Analogno, talent - radom.
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Nisan siguran jesan li te dobro skužija, ali ti imaš unos znak i duljina i onda želiš ispis oblika:

znak

znak znak

..

..

znak znak .. .. znak (duljina puta)

 

Ako ovo želiš, evo ti pseudokod:

 

funkcija(znak, duljina, trenutno):

  if duljina > trenutno gotov

  for i; i=0; i<trenutno

   print(znak )

  print(\n)

  funkcija(znak, duljina, trenutno + 1)

 

Pozivas je sa funkcija(znak, duljina, 1), a ispis u datoteku nebi treba biti problem.

Poruka je uređivana zadnji put uto 2.5.2017 14:17 (wrathchild).
7 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Pozdrav.

 

Imam zadatak za fax, radi se o implementiranju naredbi za simple chatbot sistem, 

imam dio koda (pocetni), imali neko nekakog iskustva sa slicnim zadatkom da moze pomoci?

 

Hvala unaprijed.

 
0 0 hvala 0
11 godina
offline
Programiranje u C-u - od svega pomalo

Pozdrav. Trebala bi mi mala pomoc oko zadatka. Pola zadatka sam vec napravio, ali nikako da odradim zavrsni dio, pa bih bio zahvalan ako bi netko mogao pripomoci.

Ovo je zadatak.

 

Definirati strukturu slika koja opisuje sliku sa imenom i prezimenom autora, imenom slike, dimenzijom i cijenom. Napisati funkciju koja za niz slika procitanih iz datoteke, vraca ime i prezime najzastupljenijeg autora u kolekciji.

 

Ovo sto sam boldao ne mogu napravit nikako. Znaci, u .txt file bi trebalo ubaciti par umjetnika i njihovih djela, ja sam ubacio ovako:

 

Ime autora: Giovanni Bellini, ime djela: "San Zaccaria Altarpiece"
Ime autora: Michelangelo, ime djela: "David"
Ime autora: Filipinno Lippi, ime djela: "The Life of St. Peter"
Ime autora: Michelangelo, ime djela: "Pieta"
Ime autora: Giorgione, ime djela: "The Tempest"
Ime autora: Michelangelo, ime djela: "The Sistine Chappel ceiling"

 

I sad bi to trebalo napisati kao funkciju, ne znam kako bih. Svaka pomoc je dobrodosla :)

 

 

Moj PC  
0 0 hvala 0
15 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Pozdrav. Trebala bi mi mala pomoc oko zadatka. Pola zadatka sam vec napravio, ali nikako da odradim zavrsni dio, pa bih bio zahvalan ako bi netko mogao pripomoci.

Ovo je zadatak.

 

Definirati strukturu slika koja opisuje sliku sa imenom i prezimenom autora, imenom slike, dimenzijom i cijenom. Napisati funkciju koja za niz slika procitanih iz datoteke, vraca ime i prezime najzastupljenijeg autora u kolekciji.

 

Ovo sto sam boldao ne mogu napravit nikako. Znaci, u .txt file bi trebalo ubaciti par umjetnika i njihovih djela, ja sam ubacio ovako:

 

Ime autora: Giovanni Bellini, ime djela: "San Zaccaria Altarpiece"
Ime autora: Michelangelo, ime djela: "David"
Ime autora: Filipinno Lippi, ime djela: "The Life of St. Peter"
Ime autora: Michelangelo, ime djela: "Pieta"
Ime autora: Giorgione, ime djela: "The Tempest"
Ime autora: Michelangelo, ime djela: "The Sistine Chappel ceiling"

 

I sad bi to trebalo napisati kao funkciju, ne znam kako bih. Svaka pomoc je dobrodosla :)

 

 

 A što si točno napravio? Čitaš datoteku red po red, izdvajaš iz toga ime autora te onda brojiš koji je koliko puta bio, od toga onog koji je najviše puta bio uzmeš i ispišeš.

7 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Pozdrav. Trebala bi mi mala pomoc oko zadatka. Pola zadatka sam vec napravio, ali nikako da odradim zavrsni dio, pa bih bio zahvalan ako bi netko mogao pripomoci.

Ovo je zadatak.

 

Definirati strukturu slika koja opisuje sliku sa imenom i prezimenom autora, imenom slike, dimenzijom i cijenom. Napisati funkciju koja za niz slika procitanih iz datoteke, vraca ime i prezime najzastupljenijeg autora u kolekciji.

 

Ovo sto sam boldao ne mogu napravit nikako. Znaci, u .txt file bi trebalo ubaciti par umjetnika i njihovih djela, ja sam ubacio ovako:

 

Ime autora: Giovanni Bellini, ime djela: "San Zaccaria Altarpiece"
Ime autora: Michelangelo, ime djela: "David"
Ime autora: Filipinno Lippi, ime djela: "The Life of St. Peter"
Ime autora: Michelangelo, ime djela: "Pieta"
Ime autora: Giorgione, ime djela: "The Tempest"
Ime autora: Michelangelo, ime djela: "The Sistine Chappel ceiling"

 

I sad bi to trebalo napisati kao funkciju, ne znam kako bih. Svaka pomoc je dobrodosla :)

 

 

 Pa kad ucitas taj niz slika, onda napravis pomocni niz u koji ces smjestati broj ponavljanja svakog autora..

Ime svakog autora uporedis sa ostalima i ako se poklapa uvecavas brojac i ubacujes vrijednost u novi niz..

Evo ovdje primjer sa integerima, lako se modifikuje za tvoj slucaj..

 

http://www.techcrashcourse.com/2015/11/c-program-to-find-frequency-each-array-elements.html

11 godina
offline
Programiranje u C-u - od svega pomalo

Znam kako treba izgledati i sto, ali ne znam to napravit, that's the problem

Moj PC  
0 0 hvala 0
15 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Znam kako treba izgledati i sto, ali ne znam to napravit, that's the problem

 a s cime si do sada radio? koja je tvoja razina znanja, smijes koristit librarye za mapiranje ili nesto?

 

uglavnom, najjednostavnije mi se cini da napravis strukturu koja ce sadrzavat ime autora i broj ponavljanja

zatim napravis polje od te strukture i kod odredenog autora povecavas broj ponavljanja, kasnije vidis koji se najvise ponovio i ispises.

evo, pogledaj si ovo vezano za strukture 

 

premalo si toga objasnio da bi ti neko mogao dati detaljan odgovor...

11 godina
offline
Programiranje u C-u - od svega pomalo

Do sada sam imao Python 1. semestar i u 2. semestru sad radimo C.

Sve mi je jasno, vise manje, samo sta me buni sad ovo s otvaranjem i hendlanjem datoteka.

 

Nismo radili mapiranja.

 

Kako premalo? 

 

Znaci, imam prvi dio zadatka rijesen, napravljena struktura primjera jedne slike koja sadrzi neke informacije o njoj. Sad u drugom dijelu zadatka trebam napraviti funkciju koja cita nekakav popis autora i njihovih djela iz .txt filea i printa koji je autor najzastupljeniji u kolekcija.txt fileu. 

Moj PC  
0 0 hvala 0
15 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Do sada sam imao Python 1. semestar i u 2. semestru sad radimo C.

Sve mi je jasno, vise manje, samo sta me buni sad ovo s otvaranjem i hendlanjem datoteka.

 

Nismo radili mapiranja.

 

Kako premalo? 

 

Znaci, imam prvi dio zadatka rijesen, napravljena struktura primjera jedne slike koja sadrzi neke informacije o njoj. Sad u drugom dijelu zadatka trebam napraviti funkciju koja cita nekakav popis autora i njihovih djela iz .txt filea i printa koji je autor najzastupljeniji u kolekcija.txt fileu. 

 ti u biti ne znas kako rastaviti to sto procitas iz datoteke na tebi potrebne dijelove, tj. kako prepoznati sto je ime autora, a sto ima slike i slicno?

 

11 godina
offline
Re: Programiranje u C-u - od svega pomalo

Da. Jasno mi je da moram u funkciji sloziti da mi cita samo dio ime autora, da usporedi sve stringove cijelog filea i da mi isprinta ime autora koje se najvise ponavlja, a tu dolazi brojac da odradi taj dio. 

 

Znam sto bi funkcija trebala raditi i kako bi trebala izgledati, ali ne znam to napravit. Jednostavno blokam kad moram to napraviti. Prijasnji zadatci s file handleovima su mi bili relativno okej, rijesio sam ih bez problema, ali ovo nikako. 

15 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Da. Jasno mi je da moram u funkciji sloziti da mi cita samo dio ime autora, da usporedi sve stringove cijelog filea i da mi isprinta ime autora koje se najvise ponavlja, a tu dolazi brojac da odradi taj dio. 

 

Znam sto bi funkcija trebala raditi i kako bi trebala izgledati, ali ne znam to napravit. Jednostavno blokam kad moram to napraviti. Prijasnji zadatci s file handleovima su mi bili relativno okej, rijesio sam ih bez problema, ali ovo nikako. 

 Imas vise nacina kako to napravit, sad koji je najpametniji ne bih htio ulazit u to, ali vjerujem da bi ti mozda najjednostavnije bilo za napraviti da citas red po red (pretpostavljam da znas koja funkcija se koristi za to?)  te pronalazis index dvotocke i index zareza te ime autora ti je ono sto pise izmedu, tu se mozes pozabaviti sa razmacima prije i poslije. Sto se tice ovog samog zadataka ne vidim razlog zasto bi te uopce zanimalo ime djela?

 

edit: 

u biti, ako je ovo format koji ce biti uvijek zastupljen u datoteci 
Ime autora: Giovanni Bellini, ime djela: "San Zaccaria Altarpiece"
Ime autora: Michelangelo, ime djela: "David"
Ime autora: Filipinno Lippi, ime djela: "The Life of St. Peter"
Ime autora: Michelangelo, ime djela: "Pieta"
Ime autora: Giorgione, ime djela: "The Tempest"
Ime autora: Michelangelo, ime djela: "The Sistine Chappel ceiling"
onda (index ':' + 2) ti je prvo slovo autora pa te mu je ime sve do index-a zareza.

Poruka je uređivana zadnji put pon 29.5.2017 11:06 (ShadoW).
11 godina
offline
Re: Programiranje u C-u - od svega pomalo

Da, znam za to citanje.

 

Pa mislio sam da izgleda nekako potpunije, znas, da izbaci koja se djela nalaze. Mada ne znam ima li uopce smisla.

 

Edit: Da li ti je problem ako mi razlozis kompletan kod za to ovdje, samo za to hendlanje iz datoteke, moram sad u auto pa vozit do na faks, pa da mogu skicnit u voznji, da ne razbijam sad glavu oko toga. Ako ne, hvala na ovome svemu prije :) :cheers:

 

 

Poruka je uređivana zadnji put pon 29.5.2017 11:09 (Crucifixion).
15 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Da, znam za to citanje.

 

Pa mislio sam da izgleda nekako potpunije, znas, da izbaci koja se djela nalaze. Mada ne znam ima li uopce smisla

 pa ja ne znam sto si ti mislio, zato sam ti i rekao da nisi dovoljno objasnio. ja sam ti reko nacin na koji ces rijesiti ono sto se u zadatku trazi

 

napisi detaljno sto zelis pa cemo pronaci neki nacin da to napravis...

11 godina
offline
Programiranje u C-u - od svega pomalo

Ma treba mi sad samo da skenira citavi .txt file u kojem se nalazi popis autora i da isprinta (Najzastupljeniji autor u kolekciji je: "______________"), eto samo mi to treba da dovrsim ovo.

Moj PC  
0 0 hvala 0
15 godina
offline
Re: Programiranje u C-u - od svega pomalo
Crucifixion kaže...

Ma treba mi sad samo da skenira citavi .txt file u kojem se nalazi popis autora i da isprinta (Najzastupljeniji autor u kolekciji je: "______________"), eto samo mi to treba da dovrsim ovo.

 citas file red po red te pronalazis indexe onog sto sam ti reko, izmedu tih indexa ti je string s imenom autora, u strukturi gdje se ime tog autora vec nalazi povecavas brojac koliko puta je taj autor zastupljen, ako se taj autor vec ne nalazi tamo, napravis ga i stavis mu brojac da bude jedan.

Nakon sto prodes cijelu datoteku pronades kod kojeg autora je najveci brojac i ispises mu ime.

 

Jel ti sad sve jasno?

7 godina
offline
Programiranje u C-u - od svega pomalo

A zar mu nije jednostavnije, posto zna vec unaprijed format teksta upisanog u datoteku ovako uraditi koristeci fscanf.

 

typedef struct {
   char fullname[30];
   char picturename[30];
}PICTURE;

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

   if (argv < 2) { return printf("Nedovoljno argumenata"), 1; }

   FILE *file;

   if ((file = fopen(argc[1], "r")) == NULL) {
      return printf("Neuspjesno otvaranje datoteke."), 1;
   }
   int n = 20, i = 0;
   PICTURE *pictureArray = (PICTURE*)malloc(n * sizeof(PICTURE));
   char c;
   while ((c = fgetc(file)) != EOF) {
      fscanf(file, "Ime autora: %s, ime djela: %s\n", pictureArray[i].fullname, pictureArray[i].picturename);
      i++;

      if (i == n) {
         pictureArray = (PICTURE*)realloc(pictureArray, (n *= 2) * sizeof(PICTURE));
      }
   }

Poruka je uređivana zadnji put pon 29.5.2017 20:25 (slavenP22).
 
1 0 hvala 0
15 godina
offline
Re: Programiranje u C-u - od svega pomalo
slavenP22 kaže...

A zar mu nije jednostavnije, posto zna vec unaprijed format teksta upisanog u datoteku ovako uraditi koristeci fscanf.

 

typedef struct {
   char fullname[30];
   char picturename[30];
}PICTURE;

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

   if (argv < 2) { return printf("Nedovoljno argumenata"), 1; }

   FILE *file;

   if ((file = fopen(argc[1], "r")) == NULL) {
      return printf("Neuspjesno otvaranje datoteke."), 1;
   }
   int n = 20, i = 0;
   PICTURE *pictureArray = (PICTURE*)malloc(n * sizeof(PICTURE));
   char c;
   while ((c = fgetc(file)) != EOF) {
      fscanf(file, "Ime autora: %s, ime djela: %s\n", pictureArray[i].fullname, pictureArray[i].picturename);
      i++;

      if (i == n) {
         pictureArray = (PICTURE*)realloc(pictureArray, (n *= 2) * sizeof(PICTURE));
      }
   }

 je! :D ne sjecam se ni sam vise, nisam dugo to koristio

12 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

drugovi e bi znao ko ovo rješit? 

Nisam arogantan, ispričat ću se čim pogrješim, ako taj dan ikad dođe.
 
0 0 hvala 0
7 godina
offline
Re: Programiranje u C-u - od svega pomalo
čevap kaže...

drugovi e bi znao ko ovo rješit? 

 Koji zadatak i sta ti tacno nije jasno?

14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
čevap kaže...

drugovi e bi znao ko ovo rješit? 

 

Pomažemo džabe, rješavamo za 50kn po zadatku :D 

Poruka je uređivana zadnji put ned 11.6.2017 10:05 (wrathchild).
12 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

ovaj prvi me muči, ne kužim e trebaju bit liste il lista i stog? ili 2 liste i stog? 

i kad sam radio taj kod uvjek nešt promašim tak da sam se nasekiro i otišo se zapit.

Nisam arogantan, ispričat ću se čim pogrješim, ako taj dan ikad dođe.
 
0 1 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice