|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
[C++]Fwrite
Buongiorno,ho bisogno di un aiuto
Come al solito credo che sia una cosa facile,comunque.......il problema è questo: io ho fatto un programmino molto semplice giusto per capire come funziona fwrite(),fopen() ecc....questo programma permette di scrivere un testo,che poi va a salvarsi su un file di testo.Fin qui tutto bene e 0 errori.Il problema e che quando il programma va a salvare quello che ho scritto mi salva cose tutte strane Piccolo esempio: Ho provato a scrivere hello e lui sul file di testo mi è andato a salvare %> qui c è il codice del programma Codice:
include <iostream>
#include <stdio.h>
using namespace std;
int main ()
{
FILE *File;
string voce;
cin >> voce;
string buffer[] = {voce};
File = fopen ("File.txt" , "wb");
fwrite(buffer , 1 , sizeof(buffer) , File );
fclose(File);
}
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Le funzioni che stai usando sono funzioni della libreria standard del C, che quindi conoscono come unico tipo "stringa" un puntatore ad una memoria in cui inizia una sequenza di byte che contiene la stringa. Quelle funzioni non conoscono la classe "std::string".
Usa il metodo c_str() della classe std::string per avere l'equivalente stringa C.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
ho provato a modificare il buffer in
Codice:
string buffer[1][30] = {voce};
Quote:
non è che mi puoi ricordare tu come si dichiara un array string?
__________________
|
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
grazie daniele ora provo con il tuo metodo
__________________
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
ho modificato il codice in questa maniera
Codice:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
FILE *File;
string voce;
cin >> voce;
string buffer[1][30] = {voce};
File = fopen ("File.txt" , "wt");
const string *c_str(voce , 1 , sizeof(voce) , File);
fclose(File);
}
Quote:
__________________
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Ti faccio un esempio: Codice:
std::string stringaDiProva = "Hello, World!";
const char *sonoUnaStringaC;
sonoUnaStringaC = stringaDiProva.c_str();
printf("Contenuto: \"%s\"\n", sonoUnaStringaC);
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
Scusa se non ti ho risposto,comunque volevo dire un array di string
Quote:
__________________
|
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
sarò io un po come dire.....abbuo ci siamo capiti
Comunque non ho capito bene come far salvare il contenuto della variabile sul file di testo
__________________
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
OK sono riuscito a usare c_str solo che mi fa stampare sul file di testo massimo 4 caratteri per variabile,come posso risolvere?
__________________
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Come la stai usando? Così?
Codice:
fwrite(stringa.c_str(), 1, sizeof(stringa), fp); Codice:
fwrite(stringa.c_str(), stringa.length(), sizeof(char), fp);
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
si lo stavo usando proprio come hai detto tu nel primo codice,ora provo a modificare
__________________
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma usa i file del C++ e non quelli del C.
http://www.cplusplus.com/reference/i...ream/open.html Dopo lo puoi usare allo stesso modo di cout. |
|
|
|
|
|
#15 | |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
Quote:
__________________
|
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
A quanto pare non ho risolto
Codice:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
string n[14];
string m[14];
void voce1() {
ofstream Rubrica;
Rubrica.open("Rubrica.txt");
cout << "Inserire il nome del contatto\n";
cin >> n[1];
Rubrica << "Nome \n\n";
Rubrica << n[1] << "\n\n";
cout << "Ora inserire il numero\n";
Rubrica << "Numero \n\n";
cin >> m[1];
Rubrica << m[1];
Rubrica.close();
}
string selezione[14];
int main()
{
ofstream Rubrica;
Rubrica.open("Rubrica.txt");
cout << "Inserire il nome del contatto\n";
cin >> n[0];
Rubrica << "Nome \n\n";
Rubrica << n[0] << "\n\n";
cout << "Ora inserire il numero\n";
Rubrica << "Numero \n\n";
cin >> m[0];
Rubrica << m[0];
cout << "Continuare?\n";
cin >> selezione[0];
if(selezione[0] == "si") {
voce1();
void voce1();
}
}
__________________
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non ci sono for...ogni volta apri e chiudi il file, è chiaro che ogni volta che apri il file ti prenderà solo il primo.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:37.











non è che mi puoi ricordare tu come si dichiara un array string?








