Oppure

Loading
13/02/10 13:00
jaco94++
Ho un problema con un programma che sto scrivendo dovrei fare in modo che quando una stringa superi un tot di carratteri la scriva su un file , io ho provato in questo modo ma non ho avuto successo:

string rec;
const char *conv;
#define max_char 1000
for(;;)
{
while(true)
{
  ..... Vengono Immessi i dati nelle stringhe
			conv=rec.c_str();
			if(strlen(conv) == max_char)
			{
			break;
			}
}
ofstream write("mio.txt", ios::app);
write<<conv;
write.close();
rec="";
              //prima di riprendere il ciclo devo svuotare le stringhe
conv=0;
continue;
}


risultato ... sembra che il ciclo while poi non riprende ... e se la stringa era ciao come stai mi ritrovo scritto cia e basta ....
come posso fare?
aaa
13/02/10 13:38
nessuno
Se usi una

string

del C++, allora non ha senso trasformarla in stringa del C per ottenerne la lunghezza.

Il controllo va fatto per valori >= al massimo e il ciclo può essere uno solo ...

    string rec;

    while(true) 
    { 
        // input dati

        if(rec.length() >= max_char) 
        { 
            ofstream write("mio.txt", ios::app); 
            write << rec; 
            write.close(); 

            rec = "";
        } 
    } 
}


P.S. E' il solito keylogger ... ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
13/02/10 13:46
Poggi Marco
Ciao!

Non capisco come mai usi due cicli infiniti.
Comunque ti consiglio di utilizzare la funzione flush() per ottenere forzatamente la secrittura dei dati su disco.

Per maggiori chiarimenti: cplusplus.com/reference/iostream/ostream/flush/

Ultima modifica effettuata da Poggi Marco 13/02/10 14:00
aaa
15/02/10 22:23
jaco94++
Grazie 1000 ora funziona...
Il doppio ciclo infinito niente è un errore mio pensavo di dover fare una cosa che poi ho tolto e non serviva:rotfl::rotfl:
Cmq si e un semplice keylogger ho imparato a vedere che tasti vengono premuti e ho voluto provare.:D
aaa
16/02/10 1:25
HeDo
Postato originariamente da jaco94++:

Grazie 1000 ora funziona...
Il doppio ciclo infinito niente è un errore mio pensavo di dover fare una cosa che poi ho tolto e non serviva:rotfl::rotfl:
Cmq si e un semplice keylogger ho imparato a vedere che tasti vengono premuti e ho voluto provare.:D


cvd
aaa