Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-03-2007, 13:27   #1
chinchillart
Member
 
L'Avatar di chinchillart
 
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
chinchillart è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 17:17   #2
Claudio M
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.
Claudio M è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 17:35   #3
chinchillart
Member
 
L'Avatar di chinchillart
 
Iscritto dal: Apr 2004
Città: Ravenna
Messaggi: 31
Quote:
Originariamente inviato da Claudio M Guarda i messaggi
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.
Dal documento che mi hai linkato:

Quote:
Originariamente inviato da link
Input

There is a standard input stream stdin which works like cin. Functions such as scanf automatically use stdin, so
cin >> i >> s; // C++

becomes
scanf("%d%s", &i, s); /* C */

or
fscanf(stdin, "%d%s", &i, s); /* C */

Note the need for pointers to int (but strings are already pointers to char).
Non mi è molto di aiuto. Io sto compilando con miniGW sotto windows con Dev-C++. Ma quando apro un progetto scelgo progetto "consolle" in linguaggio C. Quindi dovrebbe attenersi alle regole del C.

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
chinchillart è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 17:48   #4
Torav
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
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 18:45   #5
chinchillart
Member
 
L'Avatar di chinchillart
 
Iscritto dal: Apr 2004
Città: Ravenna
Messaggi: 31
Quote:
Originariamente inviato da Torav Guarda i messaggi
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
Guarda, è possibile una cosa del genere: ho installato anche Borland C++ Builder 6, e il debugger di Borland si era sostituito a quello di Dev-C++.
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
chinchillart è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Oracle NetSuite si potenzia con nuove fu...
Musica generata con l'IA: Sony lavora a ...
Cyberpunk 2077 in versione PC su smartph...
BYD si gioca un grosso jolly: pronta Rac...
Samsung annuncia l'arrivo in Italia dei ...
Offerta lancio Pixel 10a: come ottenere ...
Google presenta Pixel 10a: poche le novi...
Caos F1 2026: 14 monoposto senza omologa...
Tesla festeggia il primo Cybercab prodot...
Desktop piccolo e potente? NZXT H2 Flow ...
Polestar spinge sull'acceleratore: arriv...
Nuovo record mondiale nel fotovoltaico: ...
L'ultimo baluardo cade: fine supporto pe...
'Il mondo non ha mai visto nulla di simi...
La Commissione europea mette sotto indag...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v