Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1

    [C++] Array e funzioni char

    Salve eccomi qui a scassarvi le sballine con i miei problemini da neofita..

    Il problema è che quando creo un array come char il compilatore mi da errore.

    ecco il codice e anche l'errore...


    codice:
    // Esempio Di Array stampato a video
    
    # include <iostream>
    
    
    using namespace std;
    
      int main () 
      {
        char ProvArray[6]={"Ciao","Che si dice","come va","allora","MarK","Vale"};
        int i;
    	
          for (i=0; i<10; i++)
    		
          cin >> ProvArray[i];
    
            return 0;
       }
       
       
    /*
     * Ecco l'Errore che mi ritorna...
     *
     * Array.cpp: In function `int main()':
     * Array.cpp:10: error: invalid conversion from `const char*' to `char'
     * Array.cpp:10: error: invalid conversion from `const char*' to `char'
     * Array.cpp:10: error: invalid conversion from `const char*' to `char'
     * Array.cpp:10: error: invalid conversion from `const char*' to `char'
     * Array.cpp:10: error: invalid conversion from `const char*' to `char'
     * Array.cpp:10: error: invalid conversion from `const char*' to `char'
     *
    */
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    156
    nella dichiarazione degli elementi dell'array togli le " e metti un apice '

  3. #3
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    per infilarci dentro delle stringhe ti serve un array di puntatori a char.

    Oppure potresti usare la STL e creare un vettore di stringhe.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  4. #4
    Originariamente inviato da infinitejustice
    per infilarci dentro delle stringhe ti serve un array di puntatori a char.

    Oppure potresti usare la STL e creare un vettore di stringhe.
    E io qui mi perdo ... :master:

    Cosa è e come si fa un array di puntatori a char?


    Cosa è un vettore di strighe e come si crea?

    Cosa è la STL ?





    nella dichiarazione degli elementi dell'array togli le " e metti un apice '
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    mmm barman,credo tu stia correndo un po'...prima ti passare agli array e alle stringhe,controlla bene l'output e l'input con iostream.

    Dal commento iniziale del tuo codice vedo che vorresti stampare a video il contenuto dell'array...bene il tuo programma non fà proprio nulla!

    ATTENZIONE: cin >> devi usarlo per l'input,mentre cout << devi usarlo per l'output!!

    esempio:

    cout << "ciao mondo";

    così vedrai nella console ciao mondo

    Se vuoi ti posto l'intero codice corretto...

  6. #6
    che piciù

    hai ragione ho messo cin anziche cout....


    ma se metto cosi ho altri errori (vedi commento)

    Domandina ma anche se non fa niente perche mi da errore? al massimo mi avrebbe dovuto far compilare senza eseguire niente....


    poi non so dimmi tu?


    codice:
    # include <iostream>
    
    
    using namespace std;
    
      int main () 
      {
    	char ProvArray[]={'Ciao','Che si dice','come va','allora','Marco','Valenti'};
        long i;
    		for (i=0; i<10; i++)
    		
            cout >> ProvArray[i];
    
    		 return 0;
       }
       
       
    /*
     * Ecco l'Errore che mi ritorna...
     *
     * 
     * Array.cpp:10: warning: character constant too long for its type
     * Array.cpp:10: warning: character constant too long for its type
     * Array.cpp:10: warning: character constant too long for its type
     * Array.cpp:10: warning: character constant too long for its type
     * Array.cpp:10: warning: character constant too long for its type
     * Array.cpp: In function `int main()':
     * Array.cpp:14: error: no match for 'operator>>' in 'std::cout >> ProvArray[i]''
     *
    */
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  7. #7
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    char *ProvArray[6]; //Array di 6 puntatori a char (cioè di 6 stringhe)
    char ProvArray[6][15]; //6 array, ognuno a sua volta array di 15 char. In pratica hai sei array ciascunpo in grado di tenere stringhe fino a 15 char.

    std::vector<std::string> ProvArray; //Con la STL...

    Poi gli elementi li spar identro cosi:
    ProvArray.push_back("Ciao");

    E' piu comodo in quanto lui ti mette a disposizione tutte le funzioni e si preoccupa di allocare la memoria, di ingrandire il vettore, ...
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  8. #8
    eccomi qui

    Ancora niente...

    ora vi posto le mie prove....


    codice:
    // Esempio Di Array stampato a video
    
    # include <iostream>
    
    
    using namespace std;
    
      int main () 
      {
          
          char *ProvArray[6];     //Array di 6 puntatori a char (cioè di 6 stringhe)
          char ProvArray[6][15]; // 6 array, ognuno a sua volta array di 15 char. 
                                 // In pratica hai sei array ciascunpo in grado di tenere 
                                 // stringhe fino a 15 char.
    
        vector<string> ProvArray; //Con la STL...
    
          ProvArray.push_back("Ciao");  //inserisco i valori
    
                /* 
                 * E' piu comodo in quanto lui ti mette a disposizione tutte 
                 * le funzioni e si preoccupa di allocare la memoria, 
                 * di ingrandire il vettore, ...
                 */
    	  int i;
    		for (i=0; i<10; i++)
    		
            cout >> ProvArray[i];
    
    		 return 0;
       }
       
       
    /*
     * Ecco l'Errore che mi ritorna...
    Array.cpp: In function `int main()':
    Array.cpp:12: error: conflicting declaration 'char ProvArray[6][15]'
    Array.cpp:11: error: 'ProvArray' has a previous declaration as `char*ProvArray[6]'
    Array.cpp:12: error: declaration of `char ProvArray[6][15]'
    Array.cpp:11: error: conflicts with previous declaration `char*ProvArray[6]'
    Array.cpp:16: error: `vector' undeclared (first use this function)
    Array.cpp:16: error: (Each undeclared identifier is reported only once for each function it appears in.)
    Array.cpp:16: error: expected primary-expression before '>' token
    Array.cpp:18: error: request for member `push_back' in `ProvArray', which is of non-class type `char*[6]'
    Array.cpp:28: error: no match for 'operator>>' in 'std::cout >> ProvArray[i]'
    
    Esecuzione terminata
     */
     
    // invece se scrivo cosi 
     # include <iostream>
     using namespace std;
    
      int main () 
      {
          
          char *ProvArray[6]; //Array di 6 puntatori a char (cioè di 6 stringhe)
          char ProvArray[6][15]; //6 array, ognuno a sua volta array di 15 char. In pratica hai sei array ciascunpo in grado di tenere stringhe fino a 15 char.
    
          std::vector<std::string> ProvArray; //Con la STL...
    
          ProvArray.push_back("Ciao");
          
           int i;
    		for (i=0; i<10; i++)
    		
            cout >> ProvArray[i];
    
    		 return 0;
    /*
    
    Array.cpp: In function `int main()':
    Array.cpp:60: error: conflicting declaration 'char ProvArray[6][15]'
    Array.cpp:59: error: 'ProvArray' has a previous declaration as `char*ProvArray[6]'
    Array.cpp:60: error: declaration of `char ProvArray[6][15]'
    Array.cpp:59: error: conflicts with previous declaration `char*ProvArray[6]'
    Array.cpp:62: error: `vector' is not a member of `std'
    Array.cpp:62: error: expected primary-expression before '>' token
    Array.cpp:64: error: request for member `push_back' in `ProvArray', which is of non-class type `char*[6]'
    Array.cpp:69: error: no match for 'operator>>' in 'std::cout >> ProvArray[i]'
    Array.cpp:72:1: unterminated comment
    Array.cpp:71: error: expected `}' at end of input
    
    Esecuzione terminata
    
    se tolgo il nome o lo cambio (char *ProvArray[6];   char ProvArray[6][15];)
    mi da altri errori...
    */

    ma tutto sto casino solo perchè ho un array char di testo?

    Se fosse int numerico sarebbe più semplice vero?


    Voi come fate a creare un array char ?
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  9. #9
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ma tu vuoi solo stampare il contenuto di un array char a video?

  10. #10
    Allora io volevo solo imparare ad usare gli Array...

    Crearli
    modificarli
    stamparli ecc..

    In 2 parole voglio imparare ad usare gli array.

    ma venendo da php forse imposto le stringhe male... non lo so.

    All'iniziono il mio scopo era creo un array con delle scritte di testo e poi le stampo a video...

    perche con un array numerico il problema non mi viene...
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.