|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2004
Città: Ravenna
Messaggi: 31
|
[C] newbie: prob. con Dev-C++
Sto scrivendo i primi programmi in C, per imparare.
Ora, nell'aplicare una tecnica di masking, ho scritto il primo programma in C, che però non acquisisce una semplice successione di 4 interi: #include <stdlib.h> #include <stdio.h> int main( void ) { unsigned int n1, n2, n3, n4; printf("Introdurre i 4 interi "); scanf("%d %d %d %d", &n1, &n2, &n3, &n4); printf("%d %d %d %d\n", n1, n2, n3, n4); system( "PAUSE" ); return 0; } Nonostante la mia incredulità, il programma non stampa i 4 interi introdotti, ma bensì stampa 0 0 0 e l'ultimo intero correttamente. Notate che se metto le variabili come globali il tutto funziona. Lo stesso programma compilato in Borland Turbo C++ 3.0 per DOS funziona. Mi spiegate l'arcano? Roberto |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Feb 2007
Messaggi: 11
|
Io l'ho compilato in c++ (compilatore gcc 3.4.6) e funziona.
Penso che scanf in c (che non uso) sia diverso da scanf in c++ tutto qui. guard queste differenze c'è pure l'equivalente c++ di scanf http://yenigul.net/tpop/handouts/CPP_to_C.htm , e nota che non si chiama scanf, almeno penso, Ciao. |
|
|
|
|
|
#3 | ||
|
Member
Iscritto dal: Apr 2004
Città: Ravenna
Messaggi: 31
|
Quote:
Quote:
Di fatto la funzione scanf riporta anche il numero dei dati acquisiti, e nel mio caso riporta 4 per le 4 variabili. Tuttavia le prime tre, se stampate, hanno valore 0. Un altro esempio: int main(void) { unsigned short int num1, num2; int check; printf("Introdurre 2 numeri: "); check = fscanf(stdin, "%d%d", &num1, &num2); printf("%5d %5d\n", num1, num2); printf("check = %d\n", check); system("PAUSE"); return 0; } In questo caso, se introduco 10 11, printf mi stampa 0 11, ma check vale 2. Ed ho usato fscanf. Ho cercato in rete ma usare scanf in C sembra la cosa più facile del mondo, anche se non è più considerata una funzione portabile rispetto allo standard GNU. Non capisco questi risultati balordi... Roberto |
||
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
scusa per la domanda stupida, non è che hai reinstallato dev-cpp su una installazione più vecchia? io una volta l'ho fatto senza accorgermene e mi dava tutti errori del genere, oltre a casini col linker e altro ancora, c'ho messo parecchio a capire dove avevo sbagliato
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Apr 2004
Città: Ravenna
Messaggi: 31
|
Quote:
Oggi però ho disintallato entrambi e ho reinstallato solo Dev-C++. Cancellando a mano tutti i file restanti. Non credo che adesso sia quello il problema... Cmq grazie del contributo. Roberto |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:05.




















