Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    30

    [c++] Alcuni problemi di sintassi

    Allora, ripropongo il topic con le mie perplessità(dato che effettivamente li era più una richiesta)...

    1)In C++ possono essere usati gli operatoti scanf e printf (come nel C) ?
    Dato che nel programma qui inserito:
    http://forum.html.it/forum/showthrea...5#post12518425

    Sembrano funzionare.

    2)Nell'operazione

    codice:
    if(scanf("%d",&x)!=1)
    {
    printf("Valore inserito errato\n");
    fflush(stdin);
    }
    else
    ;//Effettuare l'inserimento;
    Cosa fa ?

    codice:
    scanf("%d",&x)!=1
    Dato che non l'ho visto mai usare(gli operatori visti in C++ sono stati "cout" e "cin") .

    Cambiando la sintassi in:

    codice:
    if((cout<<x)!=1)
    Non funziona allo stesso modo.


    E a che serve?

    codice:
    fflush(stdin);

    3)Terza ed ultima domanda(sul secondo pezzo di codice) :

    Cosa fa l'operazione:

    codice:
    struct nodo
    {
       int valore;
       nodo *succ;
    };
    Più semplicemente, genera una struttura di tipo nodo, e fin qui ci siamo ....
    All'interno vi è "valore" che è di tipo "intero" e nodo *succ.

    Cosa fa?
    codice:
    nodo *succ

    Ora sono 3 semplici domande (la prima riguardo l'uso del C nel C++ , e le altre 2 sono pezzi di codice), spero che almeno a questo si possa rispondere....

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    bè sono tutte domande da prime 5 pagine di un libro di c++..

    la scanf e la printf si possono usare anche col c++ visto che è un subset del c, il cout e il cin sino molto diversi essendo degli stream

    fflush serve per svuotare il buffer di cin

    nodo* succ è il puntatore al successivo


    ripeto STUDIA perchè queste sono banalità che non si imparano sui forum ma sui libri!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    30
    Grazie della risposta.



    la scanf e la printf si possono usare anche col c++ visto che è un subset del c
    Ok perfetto, questo mi serviva di conferma.



    fflush serve per svuotare il buffer di cin
    In questo caso quindi serve a ripulire il buffer nel caso in cui con scanf fosse inserito un numero non reale (per esempio una lettera o un numero fratto)?

    codice:
    scanf("%d",&x)!=1
    Almeno i test su compilatore mi portano a pensare a questo..



    nodo* succ è il puntatore al successivo
    Più che altro non riesco a capire come una struttura possa puntare ad un'altro elemento .
    Quindi qui è meglio che prenda qualche libro.



    Comunque grazie, mi sei stato molto utile, a buon rendere.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Comunque in generale vale questa aurea regola: se stai programmando in C++, programma in C++! scanf() e printf() sono funzioni del linguaggio C, è vero che possono essere utilizzate anche in C++ ma questo linguaggio fornisce altre librerie per l'I/O così come per tante altre cose (gestione di stringhe, di file, manipolazione ad alto livello di strutture dati complesse...), senza contare poi il paradigma della programmazione orientata agli oggetti che il C non supporta. Sarebbe quantomeno inutile programmare in C++ ricorrendo unicamente alle librerie del linguaggio C e al solo paradigma procedurale.
    every day above ground is a good one

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    30
    Infatti era questo che mi aveva un po disorientato.
    Anche perchè molto spesso alcune sintassi (che vengono importate da vecchi linguaggi), successivamente decadono.... quindi non sapevo se era corretto utilizzarle in una prova d'esame.
    Quindi in teoria non è sbagliato , ma se voglio fare qualcosa di più è meglio utilizzare la sintassi del C++ (modificando le opportune parti di codice nel programma) .

    Grazie anche per quest'ultimo prezioso suggerimento.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.