[ dpanic @ 01.12.2001. 17:28 ] @
#include <stdio.h>


#include <stdlib.h>


#include <string.h>


#define NP 0


#define IP 1


#define MAXPUT 128


#define loc "/var/spool/mail/"


#define LOCSIZE 16 /* duzina stringa loc */





int


main ()


{





FILE *provera;


FILE *fajl;


FILE recenica;


char data[4096];





int posta;











char ime[MAXPUT-LOCSIZE];


char imes[MAXPUT] = loc;


FILE *pf;





printf ("Ime korisnika: ");


gets(ime);





if (ime==NULL){


printf(stderr,"Niste uneli korisnika\n");


}


strcat (imes, ime);

















if ((pf = fopen(imes, "r")) == NULL) {


posta=NP;


}





else if((pf = fopen(imes, "r")) != NULL) {





printf("Ima poste\n");


posta=IP;


}





fclose(pf);














if (posta==1){





printf("Chekiram postu!\n\a");











if ((provera = fopen(imes, "r")) == NULL )


{


printf ("Nepostoji %s, odnosno nema poste!!!\n, imes");


}





else


{


printf("Ucitavam podatke u bafer...\n");


fajl = fopen(imes,"r");


while ( !feof(fajl))


{


fscanf(fajl,"%s",data);


printf ("%s\n",data);


/*strcpy (data, recenica);*/





}


fclose(fajl);


}


}




















else if(posta!=1){


printf("Nemate poste!\n\a");





}











sleep(1);


return EXIT_SUCCESS;


}







[ Milan Aksic @ 01.12.2001. 19:40 ] @
Ovako kao prvo, linija:
Code:
printf(stderr,"Niste uneli korisnika\n");
ti ne valja. Jer, stderr je fajl, kao i stdout i stdin, a posto printf salje na standardni izlaz, znaci u stdout, nju ne mozes da koristis. Znaci sve sto trebas da uradis je da ubacis jedno 'f' ispred :) i dobijes fprintf().
Drugo, nisi ukljucio zaglavlje za sleep() funkciju, dos.h.
I trece, promenljiva
Code:
provera
, nikada nije koriscena, kao i (nepravilno deklarisana) FILE promenljiva
Code:
recenica
.

Treca stavka ne prouzrokuje pad ali nije na odmet da ocistis prog.
[ dpanic @ 01.12.2001. 22:46 ] @
hvala
[ Vojislav Milunovic @ 01.12.2001. 23:30 ] @
Kada dajes code koji normalno ne radi ono sto treba uvek reci sta si hteo da kod radi. Ovako mora da se cita ceo kod a ne samo problematicna funkcija koja se lako moze locirati na osnovu toga sta kod treba da radi.
[ dpanic @ 02.12.2001. 00:16 ] @
program treba da ucitava /var/spool/mail/root ili vec neki drugi fajl te tako cita postu eh on treba pri tom da kada ucita svaki red proveri da li pocinje sa odredjenim slovima npr b: i onda treba da ispise npr bot itd..
[ Vojislav Milunovic @ 02.12.2001. 15:53 ] @
Cek oces da napises program koji otvara sanduce i borji redove?

[ Ivan Tanasic @ 02.12.2001. 16:53 ] @
Citat:
Vojislav Milunovic:
Cek oces da napises program koji otvara sanduce i borji redove?



Nece da broji redove, vec oce to b: da koristi kao signalizaciju...

nesto tipa

Pismo1:

o zdravo milutine kakosi????
kad ces da se javis?

pismo2:

sta ima za domaci

pismo3

b:UradiNesto

i da program procita sta je iza b: i u skladu sa tim uradi nesto ;))
[ dpanic @ 02.12.2001. 21:18 ] @
znas kako, program ja kompajliram kad ono ujkina karina...on kada pocne petlja za citanje fajla on pocne da bulazni i na kraju segmentation fault ili kako vec bese
[ Vojislav Milunovic @ 02.12.2001. 23:39 ] @
ZA poceta koristi fgets() umesto fscanf i pogledaj man za fgets i trebalo bi da ti bude jasnije. fgets() cita liniju u buffer. Znaci do znaka \\n
[ dpanic @ 03.12.2001. 14:59 ] @
eh slusajte.. ispravio sam deo koda. napravio sam ga citljivijim. a mogo si mi makar reci da izbacivanjem gets(); iz programa povecavam sigurnost. ;)


no kada ga prepravim postovacu ovde src. napravio sam funkciju koja kupi postu, ali me zeza nece da u tu funkciju uveze drugu funkciju npr


<include stdio.h>


......


int voja();





int


main(void){





int programer;


if(voja==1){

programer==1;

}

voja();


}


int voja();


{


if (programer==1){

printf("dssd");

}

}

[Ovu poruku je menjao dARKmIND dana 03.12.2001 u 08:32 PM GMT]
[ Vojislav Milunovic @ 03.12.2001. 16:42 ] @
Reci cu samo da ako si pisao ovo ozbiljno sto si napisao odma da ti kazem da se vratis na VB i da se ne mucis sa Com.
[ Milan Aksic @ 03.12.2001. 20:10 ] @
hehehe... :) ... nije u redu da se smejem, ali vojo bar si mogao da mu kazes gde gresi (to bi bio roman ;) ).
Mada... kada malo bolje razmislim ako je stvarno ozbiljno napisao ovo, onda nema svrhe. Mislim i ja sam bio pocetnik, ali za ovakve greske je neophodna rekapitulacija. Ovo je dobronamerni savet.
Preporuka: uzmi lepo neku knjigu o C-u, i polako-polako pocni sve natenane da ucis, ako imas namere da se uopste ozbiljnije bavis C-om.

[Ovu poruku je menjao Vojislav Milunovic dana 03.12.2001 u 11:04 PM GMT]
[ dpanic @ 03.12.2001. 20:31 ] @
na brzinu sam sklepao to s*****...ako vec hoces evo ti pravi src.
izvinjavam se zbog onih gresaka ali bio sam veoma umoran kada sam to pisao...
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define NP 0

#define IP 1

#define MAXPUT 128

#define loc "/var/spool/mail/"

#define LOCSIZE 16 /* duzina stringa loc */

char ime[MAXPUT-LOCSIZE];

char imes[MAXPUT] = loc;

FILE *pf;



int postar();



int

main (void)

{



FILE *provera;

FILE *fajl;

char data[4096];



int posta;







printf ("Ime korisnika: ");

scanf("%s",ime);





if (ime==NULL){

printf("Niste uneli korisnika\n");

}



strcat (imes, ime);





postar();







if (posta==1){



printf("Ucitavam postu u bafer\n\a");







if ((provera = fopen(imes, "r")) == NULL )

{

printf ("Nepostoji %s, odnosno nema poste!!!\n, imes");

}



else

{

printf("Ucitavam podatke u bafer...\n");

fajl = fopen(imes,"r");

while ( !feof(fajl))

{

fscanf(fajl, "%s",data);

printf ("%s\n",data);

/*strcpy (data, recenica);*/



}

fclose(fajl);

}

}













else if(posta!=1){

printf("Nemate poste!\n\a");



}







sleep(1);

return EXIT_SUCCESS;

}









int postar();



if ((pf = fopen(imes, "r")) == NULL) {

posta=NP;

}



else if((pf = fopen(imes, "r")) != NULL) {



printf("Ima poste\n");

posta=IP;

}



fclose(pf);

return 0;

}



[ Vojislav Milunovic @ 03.12.2001. 22:53 ] @
Code:
[red]
<include stdio.h>


Ne pise se tako nego vako :
Code:
[b]
#include<stdio.h>
[/b]


Ajdemo sad na drugi deo programa :)

Code:

int voja();


bas sam pocastvovan sto se funkcija zove po meni


if(voja==1){
[/code]

pa da li si ti normalan de se vako poredi adresa funkcije!?!?!? Idemo dalje:

int voja();

de si video ; iza funkcije koja se deklarise !?!?!? mislim stvarno

{

if (programer==1){
[/code]

biiiiip cek zar ovo nije promenljiva unutar main ili ja samo sanjam!?!?!?!?!
Code:

printf("dssd");


Ne boj se znam da si prvi put aboravio navodnike ali to nisam ni mislio da je greska, reko to se svakom dogodi, mislio sam bukvalno na sintaksu i logiku programa.

Znaci C knjigu u ruke i prelistaj ti to opet da ne ispadne ovaj me zajebava a ja sve znam. Ovake greske ne smes da pravis ni kad ti se spava. Ocigledno nisi ni znao da su greske nego cekas da ti kompajler javi gomilu gresaka pa da stavis prst na celo i kazes "Tu mater mu sve sam uradio kako knjiga kaze" i da quotujem progy da ne bude posle sta ovaj laze.
[ Vojislav Milunovic @ 03.12.2001. 23:00 ] @
Da ne bude da sam izmislio !!!!!

Citat:
dARKmIND:

<include stdio.h>


......


int voja();





int


main(void){





int programer;


if(voja==1){

programer==1;

}

voja();


}


int voja();


{


if (programer==1){

printf("dssd");

}

}



[ anatogen @ 03.12.2001. 23:40 ] @
Citat:
Vojislav Milunovic:

int voja();

de si video ; iza funkcije koja se deklarise !?!?!? mislim stvarno


Evo ja se deklarisem kao amater ali bih ipak stavio tu tacku zarez iza deklaracije... :)
mislm svarno, gcc bi se vrlo bunio da nema ";" iza deklaracije funkcija...
bah...

[ Milan Aksic @ 04.12.2001. 00:35 ] @
Verovatno je Voja mislio na definiciju, a ne na deklaraciju funkcije.
Zna se da se iza deklracije stavlja ; ali ne i iza potpisa funkcije nakon koje sledi definicija iste.
[ anatogen @ 04.12.2001. 00:45 ] @
Ne znam ja, deklaracija i definicija ko' nebo i zemlja... :)
verovatno ga je zbunila kolicina gresaka u onom kodu... i to gaaaaadnih gresaka... :)
[ Vojislav Milunovic @ 04.12.2001. 12:15 ] @
my bad mislio sam definicija. Uostalom iz programa se moze videti na sta sam mislio :)
[ dpanic @ 04.12.2001. 14:09 ] @
hvala u svakom slucaju
[ unlimited @ 04.12.2001. 22:16 ] @
sledeci program ce da ti proveri da li postoji korisnik, tj,
dali postoji PATH LOC/korisnik, i da izlista pronadjeni fajl,

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXPUT 128
#define LOC "/var/spool/mail/"
#define LOCSIZE 16 /* duzina stringa LOC */

int main () {


FILE *pf;

char data[4096];
char ime[MAXPUT-LOCSIZE];
char imes[MAXPUT] = LOC;

printf ("\nIme korisnika: ");
scanf("%s", ime);
strcat(imes, ime);

if ((pf = fopen(imes, "r")) == NULL)
printf("\nKorisnik %s nepostoji !!!\n", ime);
else {
while (!feof(pf)) {
fscanf(pf,"%s",data);
printf ("%s\n",data);
}
fclose(pf);
}
return EXIT_SUCCESS;
}