Newsgroup: it.comp.lang.c
Titolo: Domande varie

Ciao a tutti, vorrei chiedervi alcune cose riguardo al linguaggio c:
1) uso il dev-c++ per compilare il codice e stranamente non mi viene
riconosciuto l'operatore logico OR. Voi con che combinazione di tasti
lo immettete? Se premo ALT+0166 mi da errore di sintassi.
2) non riesco a trovare l'errore in questa parte di codice (il testo è
preso pari pari dal libro dove sto studiando il linguaggio c). Il testo
dell'esercizio dice:
Il codice seguente dovrebbe prendere in input un intero e un carattere
e visualizzarli. Supponete che l'utente immetta come input 100 A.
(segue la parte di codice da correggere:)
scanf("%d", &intVal);
charVal = getchar();
printf("Integer: %d\n Character: %c\n", intVal, charVal);
(ci potrebbe essere più di un errore.. non so)
3) conoscete un buon sito dove poter reperire esempi (listati di
codice) di esercizi ed il loro relativo svolgimento?

 lo immettete? Se premo ALT+0166 mi da errore di sintassi.
Scusa, ma la tua tastiera la barretta verticale per fare l'OR ||
non l'ha ?
Se faccio come dici tu ALT+0166 mi viene
la barra con un buco ovvero (¦) invece di quella giusta cioe' (|),
che da me puo' essere ottenuta anche con ALT+124.
La cosa puo' essere un po' fuorviante perche' su alcune tastiere
(compresa la sfigata tastiera italiana del portatile che sto usando)
il carattere disegnato sul tasto e' quello con l'interruzione,
ma digitandolo mi viene il carattere giusto che poi e' quello
che va bene nel C.
Riassumendo: il carattere dovresti avercelo gia' sulla tastiera,
magari disegnato male.
Altrimenti prova ALT+124 (senza lo 0).
ciao,
g.

scanf("%d", &intVal);
scanf() (che è da evitare come la peste), lascia nel buffer di
tastiera i caratteri di "a capo", quindi bisogna svuotare il buffer
prima di una nuova lettura:
while (getchar()!='\n')


 printf("Integer: %d\n Character: %c\n", intVal, charVal);
allora credo che dopo scanf vada a capo, dovresti provare usando
scanf("%d %c", &intVal, &vharVal);
N.B. è circa un anno che "non tocco" più il c

scanf("%d %c", &intVal, &vharVal);
man scanf

Grazie davvero a tutti per avermi risposto. Effettivamente per
l'operatore logico or si doveva premere la combinazione di tasti
indicata più volte da voi. Strano comunque che il mio libro abbia come
simbolo un carattere completamente errato. Per la seconda domanda ho
provato subito ad applicare la correzione di Andrea La Forgia ed il
programma ora va bene.
Vi vorrei fare un'altra domanda. Questa parte di codice contiene
anch'essa uno o più errori:
for(x = .000001; x <= .0001; x += .000001)
printf("%.7f\n", x);
Mi potreste aiutare a capire dove c'è lo sbaglio?

 Mi potreste aiutare a capire dove c'è lo sbaglio?
Scusa, ma cosa e', un gioco a premi?
Se c'e' un errore dicci almeno che tipo di errore e', ovvero
1) errore di compilazione (ricopia i messaggi che il compilatore di manda)?
2) errore a run time ?
3) errore nel senso che non fa cosa ti aspetti (dicci cosa ti aspetti che
faccia).?
e poi bisognerebbe anche sapere di che tipo hai dichiarato la variabile x....
ciao,
g.

E' un esercizio, non vi è alcun testo di riferimento, e l'ho riportato
esattamente così com'è (ovvero l'unica parte di codice presente).
Dice solo di trovare dove è situato l'errore (o più errori). Comunque
sia credo di esserci riuscito da solo.