Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C posasavio! problem s fstreamovima!

[es] :: C/C++ programiranje :: C posasavio! problem s fstreamovima!

[ Pregleda: 2897 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zaxa321
Aleksandar Milovanovic
skola, sabacka gimnazija

Član broj: 175655
Poruke: 5
79.101.202.*



Profil

icon C posasavio! problem s fstreamovima!12.03.2008. u 23:44 - pre 196 meseci
molim brz odgovor! dakle u kratkim crtama problem je ovakav...

ovo radi:
in>>n;
in>>a[1];
out<<a[1]<<" ";
in>>a[2];
out<<a[1]<<" ";
in>>a[3];
out<<a[1]<<" ";
in>>a[4];
out<<a[1]<<" ";
ovo je ulaz:
8
ANJBCDSP
CBNIOKIA
JKDCOOQO
RTICIFQE
a ovo izlaz:
ANJBCDSP ANJBCBNIOKIA ANJBCBNIJKDCOOQO ANJBCBNIJKDCRTICIFQE

jel ovo kakav bug il u cemu je problem? inace koristim Dev-C++, source file...
 
Odgovor na temu

butcher87

Član broj: 148902
Poruke: 32
*.3dnet.co.yu.



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 00:51 - pre 196 meseci
Mnogo bi znacilo ako bi prilozio celi kod.
 
Odgovor na temu

zaxa321
Aleksandar Milovanovic
skola, sabacka gimnazija

Član broj: 175655
Poruke: 5
212.200.219.*



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 05:56 - pre 196 meseci
ok, sve u sluzbi nauke. izvolte. kao sto mozete primetiti radi samo raj mali deo u mainu, ovaj drugi sam izovlovaqo komentarima, jer sam, posle muke pregoleme s radom, primetio da mi krivo prihvata unos...


Code:
#include"stdio.h"
#include"fstream.h"
#include"string.h"

ifstream in("zad3.dat");
ofstream out("zad3.res");

int n,i,h,pocetak[4],kraj,j,l,o;
char a[20][4],q[20];




void promena()
{
 if(++h>5)
 return;
 else
 {
  if(h%2==0)
  {
  strcpy(q,a[3]);
  strcpy(a[3],a[4]);
  strcpy(a[4],q);
  }
  else
  {
  strcpy(q,a[2]);
  strcpy(a[2],a[3]);
  strcpy(a[3],q);
  }
 pocetak[2]=0;
 pocetak[3]=0;
 int rad(1);
 }
}




void rad2()
{
l=kraj-pocetak[2];
 for(i=pocetak[3]+1;i<n-1;i++)
  for(j=1;j<n-1-l;j++)
   if((a[i][1]==a[j][4])&&(a[i][3]==a[j+l][4])&&((kraj-pocetak[2]-1)*(i-pocetak[3]-1)>o))
   o=(kraj-pocetak[2]-1)*(i-pocetak[3]-1);
int rad(1);
}




void rad(int k)
{
 if(k<3)
 {
  for(i=pocetak[k]+1;i<n-1;i++)
   for(j=pocetak[k+1]+1;j<n-1;j++)
    if(a[i][k]==a[j][k+1])
    {
    pocetak[k+1]=j;
     if(k==2)
     kraj=i;
    rad(k+1);
    }
 }
 else
 rad2();
promena();
}




main()
{
in>>n;
 in>>a[1];
 out<<a[1]<<" ";
 in>>a[2];
 out<<a[1]<<" ";
 in>>a[3];
 out<<a[1]<<" ";
 in>>a[4];
 out<<a[1]<<" ";
/*rad(1);
out<<o;*/
}
 
Odgovor na temu

IgorDX
Zagreb

Član broj: 175337
Poruke: 7
*.xnet.hr.



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 09:54 - pre 196 meseci
Ovo: char a[20][4],q[20];

20 komada po 4 bajta pa se guraju jedan do drugog. Ili prosiri 20x20 ili zamijeni u 4x20.

Igor
 
Odgovor na temu

zaxa321
Aleksandar Milovanovic
skola, sabacka gimnazija

Član broj: 175655
Poruke: 5
79.101.187.*



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 12:53 - pre 196 meseci
izvinte ja sam poprilicno nov sto se tice programiranja, al moze li se to objasniti malo prostije? stavio sam 20x20 i ok je, samo jednu stvar da pitam.
kad napisem a[20][4] jesam napravio 4 stringa koji imaju 20 charova u sebi max, ili 20 stringova po 4? i kako je on uspeo da napravi onakve kerefeke od onog unosa?
 
Odgovor na temu

butcher87

Član broj: 148902
Poruke: 32
*.3dnet.co.yu.



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 14:17 - pre 196 meseci
Kad se napise char a[20][4] napravio si niz od 20 stringova i svaki po 4 karaktera, s tim sto ces moci da cuvas reci od 3 karaktera. Zasto? Ako hoces da jedan string "cuva" rec kocka, u stringu ce to izgledati ovako: {'k','o','c','k','a','\0'}. Znaci, kada string cuva rec od npr. 6 slova, string mora najmanje biti duzine 7, zbog poslednjeg znaka '\0' koji oznacava kraj reci u stringu. U tvom slucaju, treba da napises char a[4][20]; .
 
Odgovor na temu

butcher87

Član broj: 148902
Poruke: 32
*.3dnet.co.yu.



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 14:19 - pre 196 meseci
Kad se napise char a[20][4] napravio si niz od 20 stringova i svaki po 4 karaktera. Zasto? Ako hoces da jedan string "cuva" rec kocka, u stringu ce to izgledati ovako: {'k','o','c','k','a','\0'}. Znaci, kada string cuva rec od npr. 6 slova, string mora najmanje biti duzine 7, zbog poslednjeg znaka '\0' koji oznacava kraj reci u stringu. U tvom slucaju, treba da napises char a[4][20]; .
 
Odgovor na temu

IgorDX
Zagreb

Član broj: 175337
Poruke: 7
*.xnet.hr.



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 20:23 - pre 196 meseci
I meni je to nekad znao biti problem ali si uvijek zaislim sto pisem ako mi treba jedan znak i sto ako mi treba cijeli string?

Ovako - kad je nesto deklarirano kao:
char mojstr[256];
onda je kod upotrebe mojstr[0] jedan karakter a kad maknem index, onda je mojstr cijeli taj string.

A kad je deklarirano ovako:
char mojniz[4][256];
onda je kasnije mojniz[2][0] jedan karakter a kad maknes index [0], ono sto ostane je mojniz[2] a to je cijeli taj string.

Nadam se da je ovo bilo korisno.

Igor
 
Odgovor na temu

zaxa321
Aleksandar Milovanovic
skola, sabacka gimnazija

Član broj: 175655
Poruke: 5
77.46.208.*



Profil

icon Re: C posasavio! problem s fstreamovima!13.03.2008. u 21:43 - pre 196 meseci
da, shvatio sam... problem je bio jer sam ja mislio da su brojevi do promenljive broj karaktera stringa, a kasnije dimenzije, a ono zadnji je broj karaktera stringa.


al mozete li mi nekako objasniti kako se uspela napraviti ta zajebancija? kako je bacano na jedan prva 4 sto sam bacao u druge i zadnji?
 
Odgovor na temu

IgorDX
Zagreb

Član broj: 175337
Poruke: 7
*.xnet.hr.



Profil

icon Re: C posasavio! problem s fstreamovima!14.03.2008. u 00:55 - pre 196 meseci
> al mozete li mi nekako objasniti kako se uspela napraviti ta za***ancija?

Overflow - ako se ne varam tako se to zove. Ako definiras varijablu da je dugacka 4 bajta a onda na tu adresu posaljes 5 ili vise bajtova podataka u Cu ne postoji nista da to sprijeci, visak se prelije u susjedstvo. (OK, ako stvarno pretjeras, MMU unit u procesoru daje page fault i OS ubije tvoj proces).

Probaj ovo:

Code:
char a[4], b[4], c[4];

a[0] = b[0] = c[0] = '\0';

strcpy (b, "Zdravo");

printf ("a:%s, b:%s, c:%s", a, b, c);


Igor
 
Odgovor na temu

zaxa321
Aleksandar Milovanovic
skola, sabacka gimnazija

Član broj: 175655
Poruke: 5
79.101.228.*



Profil

icon Re: C posasavio! problem s fstreamovima!14.03.2008. u 08:39 - pre 196 meseci
aha, e sad savrseno razumem! fala Igore, car si :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C posasavio! problem s fstreamovima!

[ Pregleda: 2897 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.