Aiuto su scrittura file

di il
9 risposte

Aiuto su scrittura file

Ciao a tutti vorrei un aiuto su come scrivere una stringa di caratteri su un file di testo.
Premetto che sono un novizio e che sto provando a modificare solo il case1: visto che senza non posso andare avanti.
Il problema è che mi scrive solo la prima lettera di quello che voglio sul file. Ecco il codice.

#include <stdio.h>
#include <iostream>
#include <fstream>
#include <ostream>

using namespace std;

int main ()
{
char NomeFile[15];
int i,n;
char temp;
FILE *pf ;


int menu=0;

cout << "Input\n"
<< "Output\n";
cin >> menu;
switch (menu)
{
case 1:

printf ("\ncome vuoi chiamare il file?") ;
scanf ("%s", NomeFile);
pf = fopen ( NomeFile , "w" ) ;
if (pf)
{
printf ( "Inserisci testo : " ) ;
fflush(stdin);
scanf ("%c" , &temp ) ;
fprintf (pf, "%c\t", temp);
// fwrite (&temp,sizeof(int),1,pf);

}
else
printf ( " Errore durante l’ apertura del file." ) ;
fclose (pf) ;
break;

case 2:
printf ("\nquale file vuoi aprire?");
scanf ("%s", NomeFile);
pf=fopen(NomeFile, "r");
if (pf)
{
n=fread (&temp,sizeof(float),1,pf);
}
else
{
printf ("\nerrore durante l'apertura del file");

}

fclose (pf) ;
break;

default:
break;
}

return 0;
}

9 Risposte

  • Re: Aiuto su scrittura file

    Non capisco ...

    temp è un char e quindi solo un char scriverai su disco ... cosa ti aspetti?
  • Re: Aiuto su scrittura file

    Ho detto che sono un nabbone..ho fatto una figura di merda , comunque come posso prendere quindi una stringa di caratteri (tipo una frase ecc)?
  • Re: Aiuto su scrittura file

    oregon ha scritto:


    Non capisco ...

    temp è un char e quindi solo un char scriverai su disco ... cosa ti aspetti?
    ho risolto così in parte:
    dichiarato:
    char temp[1000];
    e poi:
    scanf ("%s" , &temp ) ;
    fprintf (pf, "%s\t", temp);

    ora però scrive solo la prima parola, come faccio a fargliene scrivere di più staccate anche da spazi?
    scusa per la banalità e la stupidità della mie domande ma come ti ho detto sono un nabbo in ambito.
  • Re: Aiuto su scrittura file

    Non ti preoccupare ... basta studiare ...

    Usa la funzione fgets da stdin
  • Re: Aiuto su scrittura file

    oregon ha scritto:


    Non ti preoccupare ... basta studiare ...

    Usa la funzione fgets da stdin
    Grazie mille, ho risolto con fgets()
  • Re: Aiuto su scrittura file

    oregon ha scritto:


    Non ti preoccupare ... basta studiare ...

    Usa la funzione fgets da stdin
    Un altra domanda.
    case 1:
    cout<<"Hai scelto 1 --> criptare\n";
    cout << "\ncome vuoi chiamare il file? aggiungi il .txt alla fine: " ;
    cin >> NomeFile;
    pf = fopen ( NomeFile , "w" ) ;
    if (pf)
    {
    cout << "Inserisci testo : " ;
    fflush(stdin);
    gets (messaggio);
    fprintf (pf, "%s\t", messaggio);
    }
    else
    cout << " Errore durante l’ apertura del file." ;
    fclose (pf) ;
    cout<<"Stringa criptata: "<<crypt_de_crypt(messaggio, true)<<endl;
    fprintf (pf, "%s\t", messaggio);
    break;


    Praticamente mi cripta quella che ho scritto nel file, scrivendolo nel prompt criptato.
    ma se dopo faccio la fprintf del messaggio, ovviamente rimane quello di prima (non criptato)
    La domanda (sicuramente banale) è: come faccio a scrivere nella stringa messaggio o in un altra la frase criptata?
  • Re: Aiuto su scrittura file

    Si fa una domanda per thread
  • Re: Aiuto su scrittura file

    oregon ha scritto:


    Si fa una domanda per thread
    Non volevo aprire un nuovo thread inutile per una domanda banale...lo apro lo stesso?
  • Re: Aiuto su scrittura file

    Pietrob0b ha scritto:


    oregon ha scritto:


    Si fa una domanda per thread
    Non volevo aprire un nuovo thread inutile per una domanda banale...lo apro lo stesso?
    Nessuna domanda è banale, altrimenti sapresti la risposta.

    Se usi lo stesso thread vai contro il regolamento e sicuramente si crea confusione.
Devi accedere o registrarti per scrivere nel forum
9 risposte