Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C]mi accetta solo interi

    Dubbio amletico: anche il programma più stupido in C, tipo calcolare l'area di un rettangolo, va in overflow se dichiaro x di tipo int e poi quando scanf mi chiede il valore di x e gli batto un carattere.
    Per es.
    int x=0;
    do {
    printf ("Digitare il numero di elementi che compongono i 2 vettori: ");
    scanf ("%d",&x);
    }
    while (x==0 || x>20 || x<0);

    se digito "a", il programma mi va in overflow. Qualche idea?
    Inoltre, c'è qualcuno che mi può spiegare chiaramente la sintassi di scanf? dove va inserita l'ampiezza nei caratteri? quelle sui manuali non sono chiare...vorrei solo la sintassi

  2. #2

  3. #3
    già letto, è questa che non capisco

    [=%[*][width][modifiers]type=]

    me la spieghi meglio please?

  4. #4
    ehm ci sarebbe scrittolo...

    Format specifiers: A sequence formed by an initial percentage sign (%) indicates a format specifier, which is used to specify the type and format of the data to be retrieved from stdin and stored in the locations pointed by the additional arguments. A format specifier follows this prototype:

    [=%[*][width][modifiers]type=]

    ti dice che il simbolo % indica uno specificatore di formato, che è usato per specificare il tipo e il formato dei dati da prelevare dallo stdin

    qui sotto puoi trovare la spiegazione di tutti gli specificatori

    where:

    * : An optional starting asterisk indicates that the data is to be retrieved from stdin but ignored, i.e. it is not stored in the corresponding argument.

    width: Specifies the maximum number of characters to be read in the current reading operation

    modifiers: Specifies a size different from int (in the case of d, i and n), unsigned int (in the case of o, u and x) or float (in the case of e, f and g) for the data pointed by the corresponding additional argument:
    h : short int (for d, i and n), or unsigned short int (for o, u and x)
    l : long int (for d, i and n), or unsigned long int (for o, u and x), or double (for e, f and g)
    L : long double (for e, f and g)

    type: A character specifying the type of data to be read and how it is expected to be read.

  5. #5
    ok grazie dei numerosi copia incolla... torniamo al problema principale..nex sa aiutarmi? per il fatto degli interi?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,299
    "%20s"

    ad esempio per una stringa di 20 caratteri ...

    Se utilizzi la fgets (come nell'altro post che hai aperto) con un po' di codice, riesci a risolvere il problema ...

    La scanf non ti aiuta ...

  7. #7
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8

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 © 2020 vBulletin Solutions, Inc. All rights reserved.