Aide struct

Signaler
Messages postés
2
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
10 novembre 2009
-
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
-
salut a tous!

je voudrais savoir comment je peux adapter mon code, pour pouvoir ecrire dans ma struct partir du clavier et aussi d um fichier.txt
au lieu de "Inserir(&F,"d",5,1.5)" c est quelque chose du genre."scanf("%S".codigo)" merci!


voici mom code.

#include <stdio.h>
#include <stdlib.h>
#include
#include <string.h>
#include <time.h>
#include <semaphore.h>
#include <fcntl.h>


typedef struct sOrdem
{
char codigo[4+1];
int quantidade;
float preco;
struct sOrdem *Prox;
}ordem;


typedef ordem* FILA;

// inicializar uma fila.

void Inic(FILA *fila)
{
*fila=NULL;
}

// insere um novo registo no fim da fila.

void Inserir (FILA* fila, char *codigo,int quantidade, float preco)
{
if (*fila==NULL)
{
*fila = (FILA)malloc(sizeof(ordem));
if (*fila==NULL) return;
strcpy((*fila)-> codigo,codigo);
(*fila)-> quantidade = quantidade;
(*fila)-> preco = preco;
(**fila).Prox=NULL;

}
else
Inserir(& (**fila).Prox,codigo,quantidade,preco);

}

void Listar(FILA fila)
{
if (fila==NULL) return;
printf("%S-%d-%f\n",fila->codigo,fila->quantidade,fila->preco);
Listar(fila->Prox);


FILE *fp;
int m=0;
fp = fopen("website.txt","w");
printf("%S-%d-%f\n",fila->codigo,fila->quantidade,fila->preco);
Listar(fila->Prox);

}
main()
{
FILA F;
Inic(&F);
puts("inicializar");
Listar(F);
puts("inserir:");
Inserir(&F,"d",5,1.5);
Inserir(&F,"r",25,1.45);
Inserir(&F,"s",15,1.546);
Inserir(&F,"t",5,156.57);

puts("listar 3");
Listar(F);

Listar(F);
}

4 réponses

Messages postés
36
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
7 novembre 2010

Salut

Est tu obliger de coder en C?


si oui :
void Listar(FILA fila)
{
if (fila==NULL) return;
printf("%S-%d-%f\n",fila->codigo,fila->quantidade,fila->preco);
Listar(fila->Prox); // - 1

//cette partie du code n'est jammais atteinte car cette meme fonction est rapeler avan
FILE *fp;
int m=0;
fp = fopen("website.txt","w");
printf("%S-%d-%f\n",fila->codigo,fila->quantidade,fila->preco);
Listar(fila->Prox);

}

Explique moi a quoi cert ici la partie du code a partir de mon comentair


si tu n'est pas obliger de coder en C tourne toi ver le C++ et les fameuse classes
Messages postés
2
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
10 novembre 2009

enfait je voulais voir si elle faisait le printf dans le fichier "website.txt"
je dois le faire en C.

FILE *fp;
int m=0;
fp = fopen("website.txt","w");
printf("%S-%d-%f\n",fila->codigo,fila->quantidade,fila->preco);
Listar(fila->Prox);
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Salut,
J'ai rien compris au problème, mais :
enfait je voulais voir si elle faisait le printf dans le fichier "website.txt"

faire un "printf dans un fichier" revient à utiliser fprintf(FILE,"masks",data);

Cordialement, uaip.
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Juste un petit commentaire sur ce que disait malkommalkom :
//cette partie du code n'est jammais atteinte car cette meme fonction est rapeler avan


Mis à part les très graves fautes de français, ce que tu affirmes ici est complètement faux. Une fonction ne s'arrête pas lors d'un appel récursif, je ne sais pas où tu as été chercher cette absurdité qui n'a aucun sens.