Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - puntatore a carattere
Forum - C/C++ - puntatore a carattere

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
alex2thebest (Normal User)
Rookie


Messaggi: 23
Iscritto: 17/05/2008

Segnala al moderatore
Postato alle 12:35
Domenica, 15/06/2008
non riesco a capire che problema ci sia in questo codice, nel debug non segnala nessun errore ma nell'esecuzione restituisce errore!!!

ecco il sorgente:

Codice sorgente - presumibilmente C++

  1. #include <iostream.h>
  2. #include <fstream.h>
  3. #include <stdlib.h>
  4.  
  5. main()
  6. {
  7.       char *carattere;
  8.       cout << "Inserisci testo da salvare" << endl;
  9.       cin >> carattere;
  10.       fstream file;
  11.       file.open("C:\\ciao.txt",ios::out);
  12.       file << carattere;
  13.       file.close();
  14.       _sleep(2000);
  15. return 0;
  16. }



edit by netarrow: sistemato il titolo

Ultima modifica effettuata da netarrow il 15/06/2008 alle 19:02


nulla può cambiare il mio obiettivo
nulla può cambiarmi la mia passione
mai e per nessun motivo
mi staccherò dalla programmazione

XD!
PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 13:44
Domenica, 15/06/2008
Che errore ti fa?

Quelli possibili sono per mancanza di file o file gia aperto da qualche altro programma.

Cmq non istanziare un oggetto fstream, ma visto che è un file di out, istanzia ofstream e aprilo in modalita trunc

PM Quote
Avatar
alex2thebest (Normal User)
Rookie


Messaggi: 23
Iscritto: 17/05/2008

Segnala al moderatore
Postato alle 14:45
Domenica, 15/06/2008
l'errore è:

http://img246.imageshack.us/img246/8133/erroryr1.jpg

cmq puoi farmi qualche esempio... che nn ho capito molto di ciò che hai detto!


nulla può cambiare il mio obiettivo
nulla può cambiarmi la mia passione
mai e per nessun motivo
mi staccherò dalla programmazione

XD!
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:13
Domenica, 15/06/2008
Hai dimenticato di allocare la memoria per il puntatore.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
FHF93 (Ex-Member)
Pro


Messaggi: 132
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 15:14
Domenica, 15/06/2008
Secondo me sbagli nel "cinnare" un puntatore a char


Fabrizio
Dio disse : "chi odia la scuola scagli la prima pietra" ... E così nacquero le montagne...
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 18:59
Domenica, 15/06/2008
visto che stai usando C++ e non C non vedo perchè non usare la classe string.
Ad ogni modo confermo, se vuoi usare i puntatori a carattere devi allocare il puntatore o dinamicamente con malloc, o anzi new visto che stai usando C++, o staticamente dichiarando un array (che è un puntatore al suo primo elemento)

Ultima modifica effettuata da netarrow il 15/06/2008 alle 19:00



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:28
Domenica, 15/06/2008
Puoi anche usare una stringa C, ma deve essere allocata (anche staticamente)

Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.     char testo[200];
  4.    
  5.         cout << "Inserisci testo da salvare" << endl;
  6.     cin.getline(testo, 200, '\n');
  7.  
  8.     fstream file;
  9.     file.open("C:\\ciao.txt",ios::out);
  10.     file << testo;
  11.     file.close();
  12.    
  13.         return 0;
  14. }


PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 16:22
Martedì, 17/06/2008
Per usare il puntatore a char

Codice sorgente - presumibilmente VB.NET

  1. int main()
  2. {
  3.     char buffer[200];
  4.    
  5.     cout << "Inserisci testo da salvare" << endl;
  6.     cin.getline(buffer, 200); //Si ferma da solo quando gli passa /n .. la differenza con get è che getline lo consuma e get lo lascia nel buffer
  7.  
  8.     char* stringa = new char[strlen(buffer)+1];
  9.     strcpy(buffer,stringa);
  10.  
  11.     fstream file;       //io non capisco perchè non istanziare l'oggetto appropriato...
  12.     file.open("C:\\ciao.txt",ios::out);
  13.     file << stringa;
  14.     file.close();
  15.    
  16.     return 0;
  17. }


Ultima modifica effettuata da Amarath il 18/06/2008 alle 7:40
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 18:07
Martedì, 17/06/2008
Testo quotato

Postato originariamente da Amarath:
...



Non ho capito perche' hai usato sia la stringa statica che quella dinamica ...

Potevi fare l'esempio usando solamente quella dinamica ...


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo