PDA

Visualizza la versione completa : [C] Leggere input con spazi e salvarlo in un file


devil89
17-05-2006, 21:34
Vorrei sapere come poter leggere anche gli spazi quando richiedo l'inserimento di una stringa.

Ho fatto una prova con un programma che richiede l'inserimento di una frase da tastiera e scrive iil contenuto in un file.



#include <stdio.h>

#define WAIT system("pause")

int main()
{
char str[100];
FILE *stream, *fopen();
stream = fopen("mio.txt", "w");

// testo il puntatore al file
if (stream==NULL) {
printf ("Errore! Non stato possibile creare il file\n");
WAIT;
exit(1);
}

printf ("Inserire una frase: ");
fscanf (stdin, "%s", str);
fprintf (stream, "Frase inserita: %s", str);

fclose(stream);
WAIT;
return 0;
}


Il problema che non legge gli spazi.
Se per esempio da tastiera inserisco:
Ciao come stai , sul file mi ritrovo solo Ciao senza il resto della frase.

Come posso leggere anche gli spazi?

Samuele_70
17-05-2006, 22:28
Originariamente inviato da devil89
Vorrei sapere come poter leggere anche gli spazi quando richiedo l'inserimento di una stringa.

Ho fatto una prova con un programma che richiede l'inserimento di una frase da tastiera e scrive iil contenuto in un file.



#include <stdio.h>

#define WAIT system("pause")

int main()
{
char str[100];
FILE *stream, *fopen();
stream = fopen("mio.txt", "w");

// testo il puntatore al file
if (stream==NULL) {
printf ("Errore! Non stato possibile creare il file\n");
WAIT;
exit(1);
}

printf ("Inserire una frase: ");
fscanf (stdin, "%s", str);
fprintf (stream, "Frase inserita: %s", str);

fclose(stream);
WAIT;
return 0;
}


Il problema che non legge gli spazi.
Se per esempio da tastiera inserisco:
Ciao come stai , sul file mi ritrovo solo Ciao senza il resto della frase.

Come posso leggere anche gli spazi?

Lascia che la scanf() segua il suo inevitabile destino :D
Esempio :


#include <iostream.h>

#define MAX_STR_LEN 40

int main()
{
char str[MAX_STR_LEN];
printf("Digita alcune parole (max %d caratteri)\n", MAX_STR_LEN);
fgets( str, MAX_STR_LEN, stdin);
printf("Hai digitato :\n%s", str);
return EXIT_SUCCESS;
}

Loading