PDA

Visualizza la versione completa : [C] Input e Strutture


ferra03
31-08-2010, 17:37
Ciao a tutti, devo fare un progetto in C, che sostanzialmente crea delle "componenti elettroniche" e poi su queste componenti effettuerà varie operazioni. Queste componenti sono definite da 5 campi: n° identificativo, famiglia, costo, lunghezza e altezza.

Mi viene chiesto di implementare un'operazione "componente(i, f, c, l, h)" che crei appunto una componente. Avevo pensato di creare una struttura componente definendo all'interno i 5 campi, ma ho un dubbio: posso definire una struttura all'interno di una funzione(nel senso posso fare una funzione componente che definisca al suo interno una struttura, oppure devo definire la struttura fuori dalla funzione e poi creare la funzione componente che al suo interno dichiara la struttura)?

Poi il secondo dubbio è questo: nelle specifiche di implementazione è richiesto che l'input da parte dell'utente sia esattamente scritto in questo modo( utilizzando funzioni di input standard):

c 15 2 41 89 36 (su quest'input il programma dovrebbe creare la componente elettronica)

Gli input delle altre operazioni sono più o meno analoghi, si scrive la lettera che contraddistingue l'operazione da eseguire ed eventualmente i parametri. per questo motivo avevo pensato sostanzialmente di fare un main composto da uno switch, ora vengo al punto, lo switch in base alla prima lettera riconoscerebbe il caso da eseguire e quindi l'operazione, ma come faccio(ad esempio per la funzione componente)a fargli prendere anche gli altri parametri tutti sulla stessa riga in modo che "riempiano" i campi della struttura?

menphisx
01-09-2010, 22:24
LA struttura la puoi definire nella funzione, ma rimane visibile solo lì.
Per i parametri ci sono vari modi, dipende come sono scritti, se sono un comando per righa, allora, leggi una riga alla volta, e la passi ad un tokenizer, e poi, estrai i vari token, se no fai una scanf, brutalmente, ma questo può causare facilmente errori, o se no, fai un po' come vuoi tu.

ferra03
02-09-2010, 11:56
ok grazie

Loading