Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    [C] Strano problema con la funzione fptrintf();

    Salve a tutti devo creare un file di testo con il c.
    Il mio problema è solo il modo in cui viene formattato l'output nel file.
    Ora vi posto il codice e poi vi spiego meglio
    Codice PHP:
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argcchar argv[])
    {
        
    FILE file;
        
    char Codice_fiscale[50]; 
        
    char Nome[50];
        
    char Cognome[50];
        
    char Telefono[50];
        
    char Livello[50];
        
    char Mansione[50];
        
    char Data_assunzione[50];
        
    char Data_nascita[50];
        
    char Numero_civico[50];
        
    char Via[50];
        
    char Cap[50];
        
    char bug[2];
        
    char bug2[2];
        
    char bug3[2];
        
        if ( (
    file fopen("Insert_impiegato.txt""a") ) == NULL )
        {
          
    printf("Impossibile aprire file");
          exit(
    1);    
        }
        
        
    printf("Programma per l'inserimento degli impiegati !!!!!!!!!\n");
        
        while (
    1)
        {
          
    printf("\n\n####################################\n\n");
          
    printf("Inserisci Codice_fiscale :\n");
          
    scanf("%s"Codice_fiscale);
          
    printf("Valore Codice_fiscale : %s\n\n"Codice_fiscale);
          
    printf("Inserisci Nome :\n");
          
    scanf("%[^,]"Nome);
          
    printf("Valore Nome : %s\n\n"Nome);
          
    scanf("%s"bug);
          
    printf("Inserisci Cognome :\n");
          
    scanf("%[^,]"Cognome);
          
    printf("Valore Cognome : %s\n\n"Cognome);
          
    scanf("%s"bug2);
          
    printf("Inserisci Telefono :\n");
          
    scanf("%s"Telefono);
          
    printf("Valore Telefono : %s\n\n"Telefono);
          
    printf("Inserisci Livello :\n");
          
    scanf("%s"Livello);
          
    printf("Valore Livello : %s\n\n"Livello);
          
    printf("Inserisci Mansione\n");
          
    scanf("%[^,]"Mansione);
          
    printf("Valore Mansione : %s\n\n"Mansione);
          
    printf("Inserisci Data_assunzione\n");
          
    scanf("%s"bug3);
          
    scanf("%s"Data_assunzione);
          
    printf("Valore Data_assunzione : %s\n\n"Data_assunzione);
          
    printf("Inserisci Data_nascita\n");
          
    scanf("%s"Data_nascita);
          
    printf("Valore Data_nascita : %s\n\n"Data_nascita);
          
    printf("Inserisci Numero_civico\n");
          
    scanf("%s"Numero_civico);
          
    printf("Valore Numero_civico : %s\n\n"Numero_civico);
          
    printf("Inserisci Via\n");
          
    scanf("%s"Via);
          
    printf("Valore Via : %s\n\n"Via);
          
    printf("Inserisci Cap\n");
          
    scanf("%s"Cap);
          
    printf("Valore Cap : %s\n\n"Cap);
          
    fprintf(file"INSERT INTO Impiegato VALUES ('%s', '%s', '%s', %s, %s, '%s', '%s', '%s', %s, '%s', %s);\n"Codice_fiscaleNomeCognomeTelefonoLivelloMansioneData_assunzioneData_nascitaNumero_civicoViaCap);
        }
        
    fclose(file);
      return(
    0);

    Ho usato i vettori bug per "catturare la virgola" che altrimenti sarebbe andata direttamente come parametro alla scanf successiva, lo so che una mezza stronzata quella che ho fatto ma non mi interessa la correttezza per quello che devo fare.
    Mi interessa solamente una file di testo che poi copio e incollo nel prompt per popolare le tabelle.
    Il mio problema è che nel file di testo la fprintf() non viene scritta solo su una riga ma va a capo in prossimità del parametro scanf successivo alla virgola.
    NOn so se sono riuscito a farmi capire, per capire meglio compilate e usate il programma e guardate nel file che la stringa va a capo.

    P.S. Quando inserite i parametri nel programma, nel campo nome, congome e mansione dovete mettere la virgola.

  2. #2
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    guarda, non so cosa significa quel:
    codice:
    scanf("%[^,]", Nome);
    ma se il tuo problema è eliminare la virgola, bhè basta fare così, per esempio nel caso del nome:
    codice:
    printf("Inserisci Nome :\n");
    scanf("%s", Nome);
    Nome[strlen(Nome)-1] = '\0';
    printf("Valore Nome : %s\n\n", Nome);
    in questo modo vai ad accorciare la stringa, sovrascrivendo il penultimo carattere, ovvero la virgola(perchè l'ultimo è teoricamente il '\0') con appunto il '\0', alias il terminatore di stringa! prova a modificare il listato e vedi se stampa correttamente su file...fammi sapere...ciao
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

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.