Newsgroup: it.comp.lang.c++
Titolo: Array con String invece che Char[]

Fino ad oggi ignoravo l'esistenza della classe string, che semplifica
di molto la gestione delle stringhe. 
Alleggerisce molto il lavoro e lo rende un pò più simile a linguaggi
più "semplici" come il VB.
Ora, però io ho bisogno di creare un array di stringhe.... ma non so
come fare... 
Già ho ancora poca confidenza con questo tipo di variabile
(template?). 
E poi non riesco a trovare niente di utile sulla rete.. :-(
code:--------------------------------------------------------------------------------
#include<string>
const n=10;
string vettore[n];
--------------------------------------------------------------------------------
Dovrebbe dichiarare un vettore di stringhe? 
Oppure devo specificare la lunghezza di ogni stringa del vettore? 
E come lo inizializzo? 
code:--------------------------------------------------------------------------------
vettore[0]="pippo";
vettore[1]="pluto";
--------------------------------------------------------------------------------
Va bene? 
Insomma mi sapete dire queste cose base che son totalmente nuovo al
concetto di stringhe come tipo di file con il C...
Ciao e Grazie!
Pictor

>E poi non riesco a trovare niente di utile sulla rete.. :-(
http://www.briceg.com/ticpp/
o
http://web.tiscali.it/paolo_marotta/Tutorial/index.htm

 Ciao e Grazie!
Prego!
Ciao,
Dan

Dan
Ciao,
Pictor

 Nessun suggerimento?
[cut]
Non dovrebbe esserci l'operatore di conversione a char* gia' ridefinito?
Prova a scrivere:
if (!fopen(Filename))
se non ricordo male lo chiama implicitamente
Ho preso un granchio?
-- 
Paolo

 Non dovrebbe esserci l'operatore di conversione a char* gia' ridefinito?
Credo proprio di no!
Per std::string mi sa che bisogna invocare in maniera esplicita il 
metodo c_str() ...provare per credere :)
Dan

 giuste. E se non le conosci non troverai mai quello che cerchi :)
I nomi delle classi (come "string"), magari metterci insieme "c++", 
credo che non sarebbero male come chiavi di ricerca ;)
Bye
Dan


Ciao,
fabiomdf
 
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Questa č la finestra di pop-up che mi compare all'avvio del programma
-----------------------------------------------------------------------------------
Debug Assertion Failed
Program: ...ings\PICTOR\DOCUMENTI\--
OPENGL\Prove\opengl\Debug\opengl.exe
File: fopen.c
Line: 54
Expression: *file != _T('\0')
For information on how your program can cause an assertion failure,
see the Visual C++ documentation on asserts.
(Please Retry to debug the application)
INTERROMPI	RIPROVA	IGNORA
------------------------------------------------------------------------------------
Ho provato a fare una 
char stringa[20];
strcpy(stringa,Filename.c_str());
prima della fopen e poi a passargli stringa invece di Filename.
Ma mi da lo stesso problema. Problema che non mi ha dato quando nella
strcpy al posto di Filename ho scritto direttamente
"Data/texture.bmp".
Sembra che l'errore sia nel metodo .c_str()


Dan
Ciao
Pictor


Risolto tutto!!!
Come al solito ho fatto una baggianata io! :-D
Per un errore di programmazione alla fopen() arrivava un array di
caratteri vuoto!
Adesso funziona tutto :-D
Dopo un pomeriggio intero....alla fine era la solita svista!!!!!
ARGH!!!!
Comunque mi pare strano che la fopen() non abbia previsto niente per
quando si passa una stringa vuota....
Vabbč.... adesso sembra funzionare tutto! Posso continuare ad imparare
:-D
Grazie a tutti per l'aiuto!!
E comunque adesso almeno sono incuriosito da nuovi argomenti e mi
studierň i vector e tutto il resto ;-)

 concetto di stringhe come tipo di file con il C...
Ricordati che stai programmando in C++.
Ti mostro un esempio che crea un'array e un vettore di stringhe.
Ciao.
----------------------------------------------------------------------------
--
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
        const unsigned int array_size=4;
        string S[array_size];
        S[0]="Questo e'";
        S[1]="un array";
        S[2]="di";
        S[3]="stringhe";
        for(unsigned int i=0;i<array_size;++i)
        {
                cout << S[i] << endl;
        }
        //S[4]="altra stringa..."; // sarebbe un errore!
        cout << "------------------\n";
        vector<string> V;
        V.push_back("Questo e'");
        V.push_back("un vettore");
        V.push_back("di");
        V.push_back("stringhe.");
        V.push_back("Posso aggiungerne finche ne voglio...");
        V.push_back("senza limiti, a differenza dell'array.");
        for(unsigned int i=0;i<V.size();++i)
        {
                cout << V[i] << endl;
        }
        std::cout << "\nPREMI INVIO...";
        std::cin.get();
        return 0;
}

 studierò i vector e tutto il resto ;-)
OK! :)
Ciao
Dan

 Poi ho cercato meglio e qualcosa ho trovato... 
Appunto, vedi?!
Ciao
Dan