Newsgroup: it.comp.lang.c
Titolo: Apertura file da richiesta richiesta utente

Ho un problemino che non riesco a risolvere.
Ho alcuni file:
01a.txt
01b.txt
01c.txt
02a.txt
02b.txt
02b.txt
....
e cosi' via.
Vorrei che qualcuno mi dicesse come posso scrivere una funzione con
questi requisiti:
all'utente viene chiesto di scegliere un numero, in base a questo
numero devo usare "fopen" sui tre file corrispondenti.
Siccome so usare "fopen" per aprire file il cui nome viene dato nella
riga di comando, penso che il mio problema sia risolvibile, se solo
qualcuno mi aiuta.
Esempio:
program.exe   (viene lanciato il programma)
Che file vuoi aprire ?  (compare sullo schermo)
3                     (l'utente digita il numero)  
bla, bla, bla      (sono stati aperti i file 03a.txt, 03b.txt, 03c.txt
e sono state fatte delle elaborazioni su questi file)
Grazie. Mi scuso se non sono stato chiarissimo.
Aspetto impaziente.
Ciao !
뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞
Francesco Balduini                     
baldus                                 
bald...@tin.it
 
뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞
http://space.tin.it/musica/cbalduin
(la soluzione di Monkey3,
Micromachines2 records,
come costruire un volante 
con meno di 40000,
Motoracer records)   
뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞뇞

Basta una cosa del genere:
    int nFile;
    printf("Inserisci il numero: ");
    scanf("%d", &nFile);
    ....    composizione del nome del file ad es. tramite sprintf    ...
    ....    elaborazione    ...
Ciao.
--
Antonio Donatiello
SANPAOLO Spa



 ----------------------------------------------------------------------

Ciao puoi risolvere il tuo problema usando la sprintf.
1 Leggi il numero e lo metti in una variabile (es: num)
2 sprintf(s,"03%da.txt",num) (al posto di %d viene messo il 3)
3 fp=fopen(s,"w")
--
Automatic posted from 
pol88b.polito.it
 [130.192.2.16]
via Mailgate Server - 
http://www.mailgate.org

Ringrazio chi mi ha risposto: sono riuscito a risolvere il problema
(ignoravo l'esistenza di una tale funzione sprintf).
Ma ora ho un ulteriore problema sull'uso di tale funzione:
sprintf(s,"%da.txt",num);  /* Scusa Francesco, volevi scrivere questo
? non e' vero ? */
fp=fopen(s,"w");
Cosi' i file sarebbero 1a.txt, 2a.txt.....
Vorrei almeno due cifre (01a.txt, 02a.txt e cosi' via).
Ho provato con:
sprintf(s,"%2da.txt",num);  /* aggiungendo il 2 */
Ma cosi' non funziona. (me lo compila, ma non riesce ad aprire i
files). Vorrei forzarlo a scrivere il numero in un campo di 2 numeri.
Come fare ?
P.S. Se la cosa non e' possibile (dubito) o e' troppo conplicata fa
niente: non e' di vitale importanza. (mi serve solo perche' win95
quando ordina i files per nome mette prima 11a.txt di 1a.txt)
Grazie per le risposte che sono state date e quelle che verranno date.


Baldus (
bald...@tin.it
) wrote:
: Cosi' i file sarebbero 1a.txt, 2a.txt.....
: Vorrei almeno due cifre (01a.txt, 02a.txt e cosi' via).
: Ho provato con:
: sprintf(s,"%2da.txt",num);  /* aggiungendo il 2 */
: Ma cosi' non funziona. (me lo compila, ma non riesce ad aprire i
: files). Vorrei forzarlo a scrivere il numero in un campo di 2 numeri.
: Come fare ?
sprintf(s, "%02da.txt", num); /* metti uno zero prima del 2 */
Ma ragazzi, un manuale C sotto mano non ce lo avete 8-?
Ciao ciao
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)