Newsgroup: it.comp.lang.c++
Titolo: cast di char(int) senza il valore del codice ascii

Ho bisogno di una mano:
Ho questo ciclo in cui devo sommare alla stringa  temp_filename un nome di
file "costante" più la i numerica e non il suo valore ascii
Chi mi da una dritta su come fare? ho un sacco di libri di C++ e in nessuno
c'è un'esempio su come fare.... HELP!!
    for(int i=1; i<=10/*per ora 10, poi WORDS*/; ++i)
    {
        temp_filename = filename + char(i);
    #ifdef DEBUG
        cout << "valore di i:" << i << endl;
        cout << "valore di temp_filename:" << temp_filename << endl;
    #endif
        ifstream my_ifstream(char(temp_filename));
    }

         temp_filename = filename + char(i);
temp_filename = filename + char(i + 48);
ecco risolto il problema! :)
--
Lupin85©
FILSer #2 - Founder di #fils
"It is not important what you believe, only that you believe"

         ifstream my_ifstream(char(temp_filename));
Un'altra cosa:
Questa riga funziona?
Cioé, con un unico stream tu stai aprendo una decina di file diversi.
A quale pensi accedere? Puoi usare solo l'ultimo.
E poi il cast a char funziona?
Penso sia meglio usare temp_filename.c_str().


 ha scritto nel messaggio
news:Cboe9.14542$%z1.2...@twister1.libero.it...


 ha scritto nel messaggio
news:7goe9.13809$AW6.2...@twister2.libero.it...


 eseguirsi WORDS volte cioè non più 10 ma ben 25466 volte.
[cut]
Allora, ti posto una funzione (appena creata) che fa al caso tuo.
Diciamo che "imbroglia", perché non è una reale conversione, ma vado di
fretta:
tra poco devo prepararmi per uscire con i miei amici!
(e poi non so se sarei in grado di fare questa conversione, dovrei
ragionarci
 un po': sono niubbo anche io ;P)
string int2string(int a) {
    string t;
    ofstream temp("temp.txt");
    temp << a;
    temp.close();
    ifstream n("temp.txt");
    n >> t;
    n.close();
    remove("temp.txt");
    return t;
}
ricorda che, oltre a fstream, ti serve anche cstdio, per la funzione remove.
spero di esserti stato utile... bye!


 preferisco usare c_str()
Se con "funziona" intendi che compila, siamo d'accordo. Ma prova ad usare
my_ifstream, e ti accorgerai che hai dichiarato qualcosa di completamente
diverso da quello che credi.
Max

 tutto qui.
beh... io adoro il C++...
ma queste cose si fanno in Python! :-))
===========================
import urllib
WORDS = 25466
filename = 'parola.html@sinonimi=0&exact=true&parola='
out_file = open('dizionario_garzanti.txt','a') # a==append
for i in range(1,WORDS):
    temp_filename = filename + repr(i)
    print 'valore di i: ' + repr(i)
    print 'valore di temp_filename: ' + temp_filename
    u = urllib.urlopen('
http://www.nome_dominio.com/
' + temp_filename)
    # questa ti grabba le pagine e le mette intere in
    # dizionario_garzanti.txt, non so che ci devi fare tu...
    out_file.writelines(u.readlines())
===========================
Il C++ lasciamolo a cose piů "toste" :-)))
--
Gerolamo

 }
	No, il file temporaneo no!!!! :-)
string int2string( int a )
{
	std::stringstream ss;
	ss << a;
	return ss.str();
}
deve essere dichiarato <sstream>.
_dave_

 ha scritto nel messaggio
news:Pine.LNX.4.21.020907...@localhost.localdomain...


 ha scritto nel messaggio
news:20020908130036.018...@tin.it...


 ma sono molto pignolo e voglio risolvere senza una funzione a parte :)))
bé, falla inline ;P


 deve essere dichiarato <sstream>.
in effetti avevo intenzione di usare le strstream, ma le conosco
solo per sentito dire.
Hai qualche URL da cui reperire informazione pių precise?
tia! ^_^
--
Lupin85Š


 solo per sentito dire.
precisazione: <sstream> e` un header standard che contiene le 
dichiarazioni per lavorare con gli stringstream, ovvero "stream che 
operano su std::string".
Gli strstream erano stream pre-standard che operavano su array di char, 
ma ora sono obsoleti.
ciao Anto
-- 
Antonio Cuni, 20 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 cast da char a int
Penso proprio che Max si riferisse ad un'altro dettaglio. Se tu scrivi
ifstream my_ifstream(char(temp_filename))
il parser la intepreta come la dichiarazione della funzione "my_ifstream" 
che prende un parametro "temp_filename" di tipo char e restituisce un 
ifstream.


 ma ora sono obsoleti.
grazie mille
--
Lupin85©
