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

    [C] anomalia lettura variabili

    ragazzi mi è capitata una cosa stranissimma che non mi è mai capitata.

    codice:
    #include <stdio.h>
    
    int main()
    {
        const int MAX = 32;
        int nrighe,ncolon,i,j;
    
        printf("Inserisci il numero di righe ");
        scanf("%d", &nrighe);
        printf("Inserisci il numero di colonne ");
        scanf("%d", &ncolon);
        
        printf("%d, %d", &nrighe, &ncolon);
    Inserisco 2 valori come per esempio 2 e 3

    e dato che il programma non funzionava e non trovavo l'errore ho deciso de aggiungere quella printf subito dopo aver inserito i valori di nrighe e ncolon.

    il risultato che io metta 1 e 1, 2 e 2 o qualsiasi altra cosa è sempre questo :

    nrighe = 2686776
    ncolon= 2686772


    Ma che roba è?

    scusate ma non mi è mai capitata una cosa del genere
    $_GET[FIREFOX]

  2. #2
    Svuota il buffer con
    codice:
    char ch; while ((ch = getchar()) != '\n' && ch != EOF);
    od un codice simile ogni volta prima di leggere dal buffer di input (con scanf, fgets ecc...).
    lolide
    Java Programmer

    Informati

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [C] anomalia lettura variabili

    Originariamente inviato da davifumi89
    codice:
    printf("%d, %d", &nrighe, &ncolon);
    nrighe = 2686776
    ncolon= 2686772

    Ma che roba è?

    scusate ma non mi è mai capitata una cosa del genere
    Guarda bene cosa hai scritto: stai stampando l'indirizzo di nrighe e ncolonne, non il loro contenuto... Il simbolo & (che qui si legge come "indirizzo di") non va usato in questo caso.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    43
    codice:
     printf("%d, %d", &nrighe, &ncolon);
    hai lasciato la ' & ' davanti alle variabili,cosi stampi il loro indirizzo.
    ciao.

  5. #5
    Originariamente inviato da lolide
    Svuota il buffer con
    codice:
    char ch; while ((ch = getchar()) != '\n' && ch != EOF);
    od un codice simile ogni volta prima di leggere dal buffer di input (con scanf, fgets ecc...).
    Il trucchetto di vuotare il buffer va utilizzando quando si leggono char, negli altri casi la parte rimanente dell'invio (LF) viene automaticamente scartata

    Il problema è la printf come ti hanno detto, togli gli ampersand (&).
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  6. #6
    oh che stupidata che ho fatto! non ci ho fatto neanche caso, colpa mia! grazie dell'aiuto!
    $_GET[FIREFOX]

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.