Domanda [C ]Acquisire da tastiera un insieme

Stato
Discussione chiusa ad ulteriori risposte.

Biuni

Utente Gold
16 Dicembre 2014
304
59
160
343
Salve a tuti,
mi servirebbe una mano per la creazione di un programma (che svolge diverse funzioni) ma che principalmente riceve in input da tastiera un insieme e una relazione sotto la forma:
Insieme = { elemento1 , elemento2 , elemento3 , elemento4 }
Relazione = { (elemento1 , elemento2) , (elemento3 , elemento4) }

come posso fare? Ho provato dichiarando una variabile stringa ma quando inserisco le virgole mi da "Segmentation Fault".
Qualcuno sa come posso fare?
Spero di essere stato abbastanza chiaro, se qualcuno non capisce cerco di spiegarmi meglio. Grazie mille :) !

PS: L'utente inserisce in input tramite una SCANF sia le parentesi graffe, che i numeri che le virgole!
 
Beh la cosa più vicina ad un insieme è un array, quindi già questo dovrebbe risolvere il primo punto. Per la relazione dipende da cosa devi fare (e quanto astratta dev'essere questa relazione, cioè se si riferisce a qualcosa di specifico o se dev'essere più generale possibile). Ad esempio { (elemento1 , elemento2) , (elemento3 , elemento4) } io la interpreto come: "devo produrre due numeri, il primo da una relazione generica tra la prima coppia di elementi, e il secondo dalla seconda coppia" (ho capito bene?). Questo vale sempre o la relazione potrebbe essere anche qualcosa del tipo { (elemento1, elemento2, elemento3, elemento4) } ?

Lo chiedo perchè in un caso particolare si potrebbe semplificare, mentre in un caso più generale ti ritrovi a dover inserire la relazione in una stringa e a doverne fare il parsing, che è una bella scocciatura.
 
Prova invece di scanf un getline.

Esempio:

getline(scanf,x)

dove "x" sta per il nome della variabile dichiarata come stringa.
 
Stato
Discussione chiusa ad ulteriori risposte.