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

    Problema printf %n in C

    Salve ragazzi.

    Sto studiando C e ho incontrato un piccolo problemino che mi sta facendo scervellare un pò :-)

    Uso l'ultima release di CodeBlocks con in bundle il compilatore MinGW.
    Quando uso printf %n al posto di memorizzare il numero di caratteri stampati nella relativa variabile argomento mi stampa numeri apparentemente senza senso.

    Ho cercato un pò su internet e da qualche parte ho letto he potrebbe essere un problema di compilatore. Potrebbe veramente essere ciò ? Se così fosse, mi potreste consigliare un compilatore alternativo valido ?

    Grazie in anticipo a tutti e in special modo a chiunque mi possa dare un suggerimento in merito :-)

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    3
    Ciao Alex.

    Scusa se mi sono espresso male.
    Provo a spiegarmi con un esempio.
    Avevo già visitato quella pagina, e il codice:

    codice:
    #include <stdio.h>
    
    int main()
    {
      int val;
    
      printf("blah %n blah\n", &val);
    
      printf("val = %d\n", val);
    
      return 0;
    
    }
    Che dovrebbe stampare:

    blah blah
    val = 5

    A me stampa:

    blah blah
    val = 2

    Compilato con CodeBlocks e MinGW in bundle.

    Non mi restituisce il valore atteso !? Why !?

  4. #4
    Prova a richiamare _set_printf_count_output(1); all'inizio del main. Altrimenti potresti dividere le printf ed utilizzare il valore di ritorno.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da ESSE-EFFE
    Prova a richiamare _set_printf_count_output(1); all'inizio del main.
    Non è una funzione specifica di Visual Studio?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    3
    Salve Alex/ESSE-EFFE !

    Alla fine ho risolto !

    Proverò a utilizzare anche quanto mi suggerisci te ESSE-EFFE, nel frattempo smanettando con i compilatori, ne ho trovato uno (Digital Mars) che mi ha compilato un eseguibile che fa quello che dovrebbe !

    Avevo provato anche VS Express 2010/12, ma copiando il codice mi dava una serie di errori e avvertimenti che non son stato lì nemmeno a pensarci sù e ho svuotato subito la Sandboxie e bona notte, una cosa alla volta se no

    A questo punto, nella mia poca esperienza, concluderei che sia un problema di compilatore, il MinGW sembra non digerire la printf %n.

    Grazie delle risposte !

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.