Leggere file TXT e stampare in maiuscolo

di Anonimizzato28025 il
5 risposte
Buongiorno a tutti,
sono alle prime armi con C++. Sto scrivendo un programma che, leggendo un file TXT, commuti tutti i caratteri da minuscolo a maiuscolo e li stampi a video. Ci sono quasi riuscito attraverso questo codice:
#include <fstream>
#include <cctype>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
//Definisco dei parametri facilmente modificabili
#define MAX_LINES 50
#define MAX_LINE_LEN 255
 
int main(int argc, char argv[])
{
   //Dichiaro l'array di stringhe in cui andranno i dati del file
   char strings[MAX_LINES][MAX_LINE_LEN];
   //Apro il file
   ifstream in("nomi.txt");
   
   int j = 0;
   //Ciclo che recupera i dati del file riga per riga e li mette in strings
   while ( in ) {
      in.getline(strings[j++], MAX_LINE_LEN);
   }
   
 cout << "The uppercase version of \"" << *strings << "\" is " << endl;
 
   //Ciclo esemplificativo che mostra i valori contenuti in strings
    for (int y = 0 ; y < j-1; y++){
  putchar(toupper(*strings[y]));
    }

   cout << "\nPremi un tasto per uscire.";
   getchar();
   return 0;
}
Utilizzando questo, però, riporta in maiuscolo solo il primo carattere del file. Come errore ho questo:
	[Warning] second argument of 'int main(int, char*)' should be 'char **' [-Wmain]
Qualcuno può consigliarmi come risolvere questo problema?
Grazie mille a tutti

5 Risposte

  • A parte che il codice per visualizzare in maiuscolo non ha molto senso, dato che scrivi in C++ perché non usi le

    string

    del C++?
  • Non hai risposto alla mia domanda
  • slam.mix ha scritto:


    Grazie mille, ho letto con attenzione ciò che tu mi hai proposto ma non riesco comunque ad uscirne!
    Non c’è molto da leggere se non i primi due punti a inizio pagina e capire come scrivere la funzione main.
    Il compilatore ti sta già perfettamente dicendo dove e cosa fare.

    E rispondi ad oregon. Questo ti salva solo dal warning.
Devi accedere o registrarti per scrivere nel forum
5 risposte