PDA

Visualizza la versione completa : [C++] Errore fatale in Dev-C++


snowboarder
27-10-2005, 18:40
cari amici,sto scrivendo un programma in csemplice semplice che con sprintf sscanf mi legge una stringa contenente un numero double,la converte nell'effettivo valore tramite sscanf
la salva su una struttura legata ad un array di puntatori alla struttura,li invia ad una funzione che con un ciclo di sprinf sscanf spezza il doublein due interi,la parte decimale e quella non salvandoli nella struttura di prima.
funziona tutto,il problema che appena esce dal ciclo di separazione si impalla,mi apre la
"Si verificato un errore in SenzaTitolo1.exe. L'applicazione verr chiusa."
e mi chiude tutto.
qualcuno sa perch? ecco il codice

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct dint{
double num;
int v[2];
};
void conta (struct dint **,int);
main(){
struct dint *vettori[10];
int n,i,punto,d;
char buf[40];

printf("\n numero di d: ");
scanf("%d",&d);


for(i=0;i<d;i++){
vettori[i]=(struct dint *)malloc(sizeof (struct dint));
fflush(stdin);
printf("\n numero: ");
gets(buf);
sscanf(buf,"%lf",&(vettori[i]->num));

}
conta(vettori,n);


}


void conta(struct dint **vettori,int n){
int i;
char buf[10];
double appo;

for(i=0;i<n-1;i++){

sprintf(buf,"%f",(vettori[i]->num));
sscanf(buf,"%d.%d",&(vettori[i]->v[0]),&(vettori[i]->v[1]));
printf("\n sinistra:%d destra:%d",(vettori[i]->v[0]),(vettori[i]->v[1]));
}//qua va in paranoia


}

aiuuto

alka
27-10-2005, 18:45
C' chi scrive titoli striminziti, chi esagera. :)

Ho modificato il titolo rimuovendo le parti superflue.

Ciao! :ciauz:

byaur
27-10-2005, 19:01
Originariamente inviato da snowboarder
cari amici,sto scrivendo un programma in csemplice semplice che con sprintf sscanf mi legge una stringa contenente un numero double,la converte
....
.....
....
aiuuto

indenta il codice per favore e utilizza il tag CODE...

cos illeggibile...

:oVVoVe: :oVVoVe:

snowboarder
27-10-2005, 19:21
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct dint{
double num;
int v[2];
};
void conta (struct dint **,int);
main(){
struct dint *vettori[10];
int n,i,punto,d;
char buf[40];

printf("\n numero di d: ");
scanf("%d",&d);


for(i=0;i<d;i++){
vettori[i]=(struct dint *)malloc(sizeof (struct dint));
fflush(stdin);
printf("\n numero: ");
gets(buf);
sscanf(buf,"%lf",&(vettori[i]->num));

}
conta(vettori,n);


}


void conta(struct dint **vettori,int n){
int i;
char buf[10];
double appo;

for(i=0;i<n-1;i++){

sprintf(buf,"%f",(vettori[i]->num));
sscanf(buf,"%d.%d",&(vettori[i]->v[0]),&(vettori[i]->v[1]));
printf("\n sinistra:%d destra:%d",(vettori[i]->v[0]),(vettori[i]->v[1]));
}//qua va in paranoia


}

byaur
28-10-2005, 09:15
mi sbaglio o c' una parentesi graffa di troppo???

:oVVoVe:

Loading