Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-02-2007, 22: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 22:17.
LarsFrederiksen è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2007, 10: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, 10: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, 17: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, 17: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, 15: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


Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
Metroid Prime Beyond: arriva un trailer ...
Fujifilm GFX Eterna 55: una soluzione co...
Stardew Valley arriva su Switch 2: una c...
E-bike fat legale con "pulsante mag...
Nintendo Virtual Boy: l'accessorio per S...
Popucom si presenta come uno dei miglior...
Super Mario Galaxy il film: l'idraulico ...
Stellantis, contro risposta a BYD: "...
Microsoft evita una sanzione in Europa p...
TCL a IFA 2025: TV Mini LED, smartphone ...
Neanche la politica è salva: l'Al...
I nuovi Pixel 10 in mostra a Milano con ...
Perplexity di nuovo in tribunale: Merria...
AirPods 4 al minimo su Amazon: la versio...
Sam Altman sempre più convinto: l...
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: 21:33.


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