Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-02-2007, 23:14   #1
LarsFrederiksen
Senior Member
 
L'Avatar di LarsFrederiksen
 
Iscritto dal: Jun 2005
Città: Roma
Messaggi: 761
[C++] Problema apertura in scrittura di files....

Ciao,
vado subito al sodo sperando nella vostra collaborazione.

Ho necessità di aprire in scrittura 5 file : file1, file2, file3, file4, file5

Vorrei fare questa operazione in un ciclo for.
Ad esempio:

FILE *prova // puntatore al file che sto utilizzando



for (int i=0 ; i<5 ; i++)

{
prova=fopen(" file[i]", "w") // Scrivendo così il valore della i non viene modificato (come è giusto che sia )

//eventuali altre istruzioni

.
.
..
}

Vi chiedo....
Qual'è il modo + semplice per fare questa cosa?

Ho pensato di fare un array di stringhe così:

string vettore [5]={"file1", "file2", "file3", "file4", "file5"}

for (int i=0 ; i<5 ; i++)

{
prova=fopen(vettore[i], "w")

//eventuali altre istruzioni

}

Ma neanche così funge.
Ho provato con l'array di caratteri ma mi è sembrato solo di complicare le cose.

Mi suggerite qualcosa please????
Aspetto fiducioso!!
Ciao, buona serata
__________________
"...e la fine di tutto il nostro esplorare sarà arrivare dove abbiamo cominciato e conoscere quel luogo per la prima volta...""

Ultima modifica di LarsFrederiksen : 20-02-2007 alle 23:17.
LarsFrederiksen è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2007, 11:13   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Non so cosa stai facendo, ma ad occhio devi usare un puntatore diverso per ogni file.
Ergo assegni al puntatore prova vari file

Dovresti ad esempiop avere un array del tipo
FILE* prova[5]

e chiamare con prova[i]=fopen (...)
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2007, 11:22   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da LarsFrederiksen Guarda i messaggi
Ciao,
Ho necessità di aprire in scrittura 5 file : file1, file2, file3, file4, file5
Innanzitutto devi prestare attenzione al fatto che se vuoi aprire e quindi lavorare contemporaneamente con 5 file, dovrai pure avere 5 FILE*.
Per quanto riguarda i nomi dei file, hai sostanzialmente 2 possibilità: creare un array dei nomi oppure generare dinamicamente il nome del file (questo va bene se i nomi sono in un formato ben preciso, ad esempio del tipo nomenumero).

Modo1:
Codice:
char *nomi[5] = { "file1", "file2", "file3", "file4", "file5" };
FILE *file[5];
int i;

for (i = 0; i < 5; i++)
    file[i] = fopen (nomi[i], "w");
Modo 2:
Codice:
FILE *file[5];
int i;
char nome[20];

for (i = 0; i < 5; i++)
{
    sprintf (nome, "file%d", i+1);
    file[i] = fopen (nome, "w");
}
Nota che tutta questa roba è sostanzialmente del "C", non del C++. Inoltre ho tralasciato, per brevità, la gestione degli errori, che però tu dovresti fare.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2007, 18:07   #4
LarsFrederiksen
Senior Member
 
L'Avatar di LarsFrederiksen
 
Iscritto dal: Jun 2005
Città: Roma
Messaggi: 761
GRAZIE!!!!

Ciao,
intanto grazie mille per l'aiuto!!
Ho provato il modo 1 e funziona perfettamente. Io sui file devo lavorarci non contemporaneamente ma uno alla volta; ho quindi utilizato un solo FILE * ed alla fine di ogni ciclo scrivo :

fclose(file);
file=NULL;

Non so se sia necessario far ciò però per scrupolo......

Giusto per capire bene....... ma l'array nomi:

char *nomi[5] = { "file1", "file2", "file3", "file4", "file5" };

è un array di 5 elementi . Ciascun elemento punta ad un char??
Non mi è molto chiara la logica della scrittura
Ciao, torno a smanettare.....
__________________
"...e la fine di tutto il nostro esplorare sarà arrivare dove abbiamo cominciato e conoscere quel luogo per la prima volta...""
LarsFrederiksen è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2007, 18:17   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da LarsFrederiksen Guarda i messaggi
Ho provato il modo 1 e funziona perfettamente. Io sui file devo lavorarci non contemporaneamente ma uno alla volta; ho quindi utilizato un solo FILE *
Allora se l'uso non è contemporaneo puoi certamente usare 1 solo FILE*. All'interno del ciclo for apri il file i-esimo, lo usi e poi lo chiudi e quindi ripeti con il successivo. È chiaro ... dipende sempre da cosa uno deve fare di preciso.

Quote:
Originariamente inviato da LarsFrederiksen Guarda i messaggi
ed alla fine di ogni ciclo scrivo :

fclose(file);
file=NULL;

Non so se sia necessario far ciò però per scrupolo......
L'assegnazione di NULL non è necessaria.

Quote:
Originariamente inviato da LarsFrederiksen Guarda i messaggi
Giusto per capire bene....... ma l'array nomi:

char *nomi[5] = { "file1", "file2", "file3", "file4", "file5" };

è un array di 5 elementi . Ciascun elemento punta ad un char??
Ogni elemento dell'array è un puntatore a char che punta ad una stringa "literal".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2007, 16:22   #6
LarsFrederiksen
Senior Member
 
L'Avatar di LarsFrederiksen
 
Iscritto dal: Jun 2005
Città: Roma
Messaggi: 761
I tuoi consigli mi sono stati molto utili.
A presto(i dubbi non finiscono mai!! ) .........e grazie
__________________
"...e la fine di tutto il nostro esplorare sarà arrivare dove abbiamo cominciato e conoscere quel luogo per la prima volta...""
LarsFrederiksen è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Vast prosegue la costruzione della stazi...
Chiarito cosa è successo al satel...
Il TAR annulla Bologna Città 30. ...
Laptop con chip NVIDIA da marzo? Emergon...
Costruito in casa, più veloce di ...
Il nuovo Galaxy Book 6 Pro costa il 25% ...
C'è un boom del mercato dei data ...
OVHcloud annuncia la disponiiblità...
Il Wi-Fi 7 ha un nuovo re: da ASUS arriv...
In arrivo l'auto "Frankenstein"...
Chip NVIDIA H200 in Cina? 'Come vendere ...
iPhone 16 torna super conveniente: ora c...
Offerte Amazon pazzesche: tech, smartpho...
Ubisoft annuncia l'arrivo dei 60 fps per...
Infratel Italia: ecco la nuova mappa del...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v