Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    aiuto con comando fprintf C++

    LINGUAGGIO C++

    programma in questione
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define ARRSIZE(arr)    (sizeof(arr)/sizeof(*(arr)))
    
    int main()
    {
        const char values[]= {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
        char * buffer=NULL;
        int * stack=NULL;
        int combinationLength=-1;
        int valuesNumber=-1;
        int curPos=0;
        fprintf(stderr, "%s", "Length of a combination: ");
        if(scanf("%d", &combinationLength)!=1 || combinationLength<1)
        {
            fputs("Invalid value.\n",stderr);
            return 1;
        }
        fprintf(stderr, "%s (%lu max): ", "Possible digit values",(long unsigned)ARRSIZE(values));
        if(scanf("%d", &valuesNumber)!=1 || valuesNumber<1 || (size_t)valuesNumber>ARRSIZE(values))
        {
            fputs("Invalid value.\n", stderr);
            return 1;
        }
        buffer=(char *)malloc(combinationLength);
        stack=(int *)malloc(combinationLength*sizeof(*stack));
        if(buffer==NULL || stack==NULL)
        {
            fputs("Cannot allocate memory.\n", stderr);
            free(buffer);
            free(stack);
            return 2;
        }
        /* Combinations generator */
        for(;;)
        {
            /* If we reached the last digit symbol... */
            if(stack[curPos]==valuesNumber)
            {
                /* ...get back to the previous position, if we finished exit */
                if(--curPos==-1)
                    break;
                /* Repeat this check */
                continue;
            }
            buffer[curPos]=values[stack[curPos]];
            /* If we are in the most inner fake-cycle write the combination */
            if(curPos==combinationLength-1)
                puts(buffer);
            stack[curPos]++;
            /* If we aren't on the last position, start working on the next one */
            if(curPos<combinationLength-1)
            {
                curPos++;
                stack[curPos]=0;
            }
        }
        /* Cleanup */
        free(buffer);
        free(stack);
        return 0;    
    }
    vorrei mi stampasse il risultato in un file .lst nella stessa directory in cui è presente il programma. grazie.
    per fare la prova inserite come primo carattere 2
    e secondo carattere 36

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: aiuto con comando fprintf C++

    Originariamente inviato da napster2world
    vorrei mi stampasse il risultato in un file .lst ...
    E quindi?

    Apri il file con la funzione apposita e ci scrivi dentro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    E quindi?

    Apri il file con la funzione apposita e ci scrivi dentro ..

    non ho capito

  4. #4
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Dal codice che hai scritto non mi sembri alle prime armi .
    forse ti basta fopen("nomefile.txt","w") scrivere nella stessa directori è di default .
    Tecnologia

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da napster2world
    non ho capito
    Però mi pare di avere risposto chiaramente ... cosa non hai capito?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    che dall'esterno ci riesco mi serviva che lo facesse il programma

    e comunque si, sono alle prime armi, ho chiesto aiuto in un vecchio post che mi è stato chiuso dai mod.

    mi hanno praticamente indirizzato a questo programma ma mi rimane il quesito della scrittura su file.


  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da napster2world
    che dall'esterno ci riesco mi serviva che lo facesse il programma
    Dall'esterno in che senso?

    Il programma lo può fare se

    1) apri il file con la fopen

    2) scrivi dentro il file con la fprintf

    3) chiudi il file quando non ti serve più con la fclose

    e comunque si, sono alle prime armi,
    Ok, ma ci devi mettere tu un po' di impegno. E' un forum per "aiutare" i programmatori, non si scrive codice pronto (leggasi pappa pronta) per chi non ha nessuna intenzione di collaborare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    codice:
    #include <stdio.h>
    
    int main ()
    {
       FILE * pFile;
       int n;
       char NOME[100];
    
       pFile = fopen ("FILEPROVA.txt","w");
       for (n=0 ; n<3 ; n++)
       {
         puts ("INSERISCI NOME: ");
         gets (NOME);
         fprintf (pFile, "NOME %d [%-10.10s]\n",n,NOME);
       }
       fclose (pFile);
    
       return 0;
    }
    io ho fatto questo, modificato e riadattato preso da un'altro sito
    in questo caso questo programma mi crea sulla stessa directory un file FILEPROVA.txt
    con dei nomi per es:
    codice:
    NOME 1 [MARIO      ]    
    NOME 2 [SANDRO    ] 
    NOME 3 [CARLO       ]
    la mia richiesta di aiuto è diciamo fondere questi due programmi in modo che all'esecuzione del programma, e, una volta finito, nella directory mi compaia un file FILE.lst

    e il secondo programma è quello che ho postato all'inizio...
    spero di essermi spiegato....
    grazie comumque, so che vi sto stressando parecchio, scusate anche la mia forte incopetenza, ma sono desideroso di imparare...

  9. #9
    codice:
     #include <stdio.h>
    #include <stdlib.h>
    
    
    #define ARRSIZE(arr)    (sizeof(arr)/sizeof(*(arr)))
    
    int main()
    {
    	FILE * pFile;
    	
    	
    	
    	const char values[]= {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
        char * buffer=NULL;
        int * stack=NULL;
        int combinationLength=-1;
        int valuesNumber=-1;
        int curPos=0;
        pFile = fopen ("wpa.lst","w");
       
        fprintf(stderr, "%s", "Length of a combination: ");
        if(scanf("%d", &combinationLength)!=1 || combinationLength<1)
        {
            fputs("Invalid value.\n",stderr);
            return 1;
        }
        fprintf(stderr, "%s (%lu max): ", "Possible digit values",(long unsigned)ARRSIZE(values));
        if(scanf("%d", &valuesNumber)!=1 || valuesNumber<1 || (size_t)valuesNumber>ARRSIZE(values))
        {
            fputs("Invalid value.\n", stderr);
            return 1;
        }
        buffer=(char *)malloc(combinationLength);
        stack=(int *)malloc(combinationLength*sizeof(*stack));
        if(buffer==NULL || stack==NULL)
        {
            fputs("Cannot allocate memory.\n", stderr);
            free(buffer);
            free(stack);
            return 2;
        }
        /* Combinations generator */
        for(;;)
        {
            /* If we reached the last digit symbol... */
            if(stack[curPos]==valuesNumber)
            {
                /* ...get back to the previous position, if we finished exit */
                if(--curPos==-1)
                    break;
                /* Repeat this check */
                continue;
            }
            buffer[curPos]=values[stack[curPos]];
            /* If we are in the most inner fake-cycle write the combination */
            if(curPos==combinationLength-1)
                puts(buffer);
            stack[curPos]++;
            /* If we aren't on the last position, start working on the next one */
            if(curPos<combinationLength-1)
            {
                curPos++;
                stack[curPos]=0;
            }
        
        
       
        }
        
        /* Cleanup */
        free(buffer);
        free(stack);
        fclose (pFile);
        return 0;  
          
    }
    OK CI SONO QUASI MI CREA IL FILE MA DENTRO NON CI SCRIVE NIENTE...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    NON CI SCRIVE NIENTE...
    Ovviamente, se non usi la funzione per scrivere nel file i dati ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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