Oppure

Loading
17/05/07 19:10
Vi posto questo breve programmino, per ora cè solo il codice in se e per se, poi valuterò come migliorarlo / rimuovere eventuali errori.
Il problema praticamente è che non riesce a rendere maiuscoli file piu grandi di una decina di righe, ma mi pare stranp che non si possa farlo per file un po' + grandi... vabè vedete voi. Chiedo scusa se magari ho fatto delle scelte poco consone ma sono proprio agli inizi. ;)

#include <iostream>
#include <fstream>
#include <cstring>
#include <cctype>
using namespace std;

int main()
{
 cout << "# Inserire il percorso del file da rendere maiuscolo\n";
  char percorso[200];
   gets(percorso);
    ifstream min(percorso,ios::binary);
    ofstream max("maiuscolo.txt",ios::binary);
     char contenuto[sizeof min]; /* gli ho dato come indice il sizeof del file per renderlo in qualche modo direttamente proporzionale alla grandezza del file*/
        min.read(contenuto, sizeof min);
        min.close();
          char contenutoFinal[strlen(contenuto)+1];
           for(int i = 0; i <= strlen(contenuto); i++) contenutoFinal[i] = toupper(contenuto[i]);
        max.write(contenutoFinal, sizeof contenutoFinal);
        max.close();
 cin.get();
return 0;
}
18/05/07 17:26
netarrow
visto che usi C++, ti consiglio di usare la classe string al posto dei puntatori a carattere (la soluzione al quanto bestemmiosa che si usava nel caro vecchio C).
Ultima modifica effettuata da netarrow 18/05/07 17:27
aaa
18/05/07 18:16
Bhè io ancora non ho studiato le classi, come vedi sono agli inizi..
Qualcuno invece saprebbe dirmi perchè non funziona con file + grandi di 10 righe( più o meno) ?
19/05/07 6:27
netarrow
direi che il sizeof min non vada bene, per avere le dimensioni del file e allocare un vettore di dimensioni opportune si fa così:

...
min.seekg (0, ios::end);
int length = min.tellg();
min.seekg (0, ios::beg);
...
char* buffer = new char[length];
// o se usi stile C
// char* buffer = (char*) malloc(sizeof(char) * length);


cmq ora sono a scuola e non ho un compilatore C/C++ per provare (noi siamo antiquati, facciamo COBOL -.- ).

eventualmente a casa lo proverò
Ultima modifica effettuata da netarrow 19/05/07 6:30
aaa