Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    24

    [C] Sicuramente una bischerata - Lettura sequenza valori

    Ciao a tutti, scusatemi la domanda che mi da l'idea essere stupida...
    come faccio in C a leggere con scanf una sequenza di numeri interi senza sapere quanti me ne devo aspettare?
    Graize
    ste

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303

    Moderazione

    Correggo il titolo... non mettere commenti personali, che non hanno a che vedere con la discussione... che poi non è detto che sia una così semplice bischerata.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Con un ciclo while :

    codice:
    int flag=1;
    int numero;
    char risposta;
    while (flag) {
      scanf("%d",&numero);
      printf("Vuoi leggere ancora? (s/n)\n");
      scanf("&c",&risposta);
      if (risposta=='n') flag=0;
    }
    Questo è un esempio, ma la condizione di uscita (cioè quell'if) la puoi cambiare a piacimento tuo, magari in relazione al numero che leggi, o altre cose...

    ciao ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    24
    Grazie, ma non è possibile leggere i dati inseriti in questa forma (es.): 2 6 93 4 6 etc etc?
    grazie
    stefano

  5. #5
    Valuta l'idea di immettere i dati come un unica stringa e poi la dividi ed estrai i numeri.
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  6. #6
    La funzione scanf restituisce un valore di tipo int, che rappresenta il numero di dati effettivamente letti; se questo risulta inferiore al numero di argomenti usati nella chiamata (esclusa la control-string), vuol dire che si é verificato un errore.
    Inoltre legge un dato finche non incontra un terminatore, cioè blank, tab o CR.

    Ciò vuol dire che puoi controllare se ci sono ancora dati da leggere verificando che il valore di ritorno sia 1.
    codice:
    int letto=1;
    while (letto) {
      letto=scanf("%d",&numero);
      printf("%d",numero);
    }

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.