Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti scusate se continuo a scassarvi con le mie banali domande ma sono appena entrato nel mondo linux oggi con una nuova domanda x voi, allora(non si comincia mai un discorso con allora, ihih) ho creato un database per tutti i vari codici che incontro e che mi voglio ricordare il codice è questo:
Codice sorgente - presumibilmente C++
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
usingnamespace std;
int main(){
int scelta;
string nome_utente, genere_linguaggio, testo;
cout<<"Database codici creato in C++"<< endl << endl;
cout<<"Scegli-> "<<"1: Scrivi su Database "<<"2: Leggi da Database";
cout<< endl <<"Scelta-> ";
cin>> scelta;
if(scelta=="1"){
cout<<"Inserisci il Nome Utente: ";
cin>> nome_utente;
cout<< endl <<"Inserisci il genre di linguaggio(ex. C++): ";
Database.c: In function ‘int main()’:
Database.c:15: error: ISO C++ forbids comparison between pointer and integer
Database.c:20: error: ‘WriteCode’ was not declared in this scope
Database.c:20: error: expected `;' before ‘ofstream’
Database.c:30: error: ‘ReadCode’ was not declared in this scope
Database.c:30: error: expected `;' before ‘ifstream’
Postato originariamente da LittleHacker: sono appena entrato nel mondo linux
Non c'entra il mondo Linux ... il fatto e' che non hai le basi della programmazione C/C++ ...
Il primo errore e' nella riga
Codice sorgente - presumibilmente Plain Text
if(scelta=="1"){
in cui confronti un char con una stringa (quindi un int con un puntatore) che e' quello che ti rimprovera il compilatore.
Avresti avuto questo errore con qualsiasi compilatore e qualsiasi sistema operativo ... ti serve un libro di C/C++ di base, non importa con quale sistema operi.
Allora:
if(scelta=="1") è sbagliato anche perchè se usi il comando cin dentro scelta ti troverai il numero corrispondente al codice ASCII del tasto che hai premuto(se premi il tasto 1 scelta non è 1), percui sostituisci semplicemente int scelta; con string scelta; e vedrai che tutto funzionerà.
non funzionerà mai perchè devi intanto invertire ofstream e WriteCode e poi io ti sconsiglio ampiamente di usare << nelle dichiarazioni ma di usare sempre +. Se in linux non funziona dichiara una stringa path e caricaci dentro il valore della cartella. Non sono neanche sicuro che funzioni "/home/" però puoi provare.
Altra miglioria: non mettere mai le maiuscole nelle cose che dichiari perché il compilatore può far confusione (per certi "A" è uguale a "a", per altri le due cose sono differenti).
Il codice corretto sta qui sotto ma attento: COPIALO SOLO DOPO AVER LETTO QUI SOPRA E AVER CONSULTATO QUESTA PAGINA CHE CONTIENE UNA BELLISSIMA SPIEGAZIONE DEGLI INPUT/OUTPUT:
http://www.pierotofy.it/pages/guide_tutorials/CPlusPlus/Is ...
Codice sorgente - presumibilmente C++
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
usingnamespace std;
int main(){
string scelta;
string nome_utente, genere_linguaggio, testo;
cout<<"Database codici creato in C++"<< endl << endl;
cout<<"Scegli-> "<<"1: Scrivi su Database "<<"2: Leggi da Database";
cout<< endl <<"Scelta-> ";
cin>> scelta;
if(scelta=="1"){
cout<<"Inserisci il Nome Utente: ";
cin>> nome_utente;
cout<< endl <<"Inserisci il genre di linguaggio(ex. C++): ";
Allora:
if(scelta=="1") è sbagliato anche perchè se usi il comando cin dentro scelta ti troverai il numero corrispondente al codice ASCII del tasto che hai premuto(se premi il tasto 1 scelta non è 1), percui sostituisci semplicemente int scelta; con string scelta; e vedrai che tutto funzionerà.
non funzionerà mai perchè devi intanto invertire ofstream e WriteCode e poi io ti sconsiglio ampiamente di usare << nelle dichiarazioni ma di usare sempre +. Se in linux non funziona dichiara una stringa path e caricaci dentro il valore della cartella. Non sono neanche sicuro che funzioni "/home/" però puoi provare.
Altra miglioria: non mettere mai le maiuscole nelle cose che dichiari perché il compilatore può far confusione (per certi "A" è uguale a "a", per altri le due cose sono differenti).
Il codice corretto sta qui sotto ma attento: COPIALO SOLO DOPO AVER LETTO QUI SOPRA E AVER CONSULTATO QUESTA PAGINA CHE CONTIENE UNA BELLISSIMA SPIEGAZIONE DEGLI INPUT/OUTPUT:
http://www.pierotofy.it/pages/guide_tutorials/CPlusPlus/Is ...
Codice sorgente - presumibilmente C++
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
usingnamespace std;
int main(){
string scelta;
string nome_utente, genere_linguaggio, testo;
cout<<"Database codici creato in C++"<< endl << endl;
cout<<"Scegli-> "<<"1: Scrivi su Database "<<"2: Leggi da Database";
cout<< endl <<"Scelta-> ";
cin>> scelta;
if(scelta=="1"){
cout<<"Inserisci il Nome Utente: ";
cin>> nome_utente;
cout<< endl <<"Inserisci il genre di linguaggio(ex. C++): ";
MODIFICA: ATTENZIONE NON PUOI CHIUDERE UNO STREAM DENTRO UN CICLO!!!
Grazie mille...La stronzata + grande ke ho fatto è stat quella di invertire l'ordine SaveCode ofstream invece ke ofstream SaveCode comunque grazie mille anche della guida...
Boh mi da sempre errori su errori(ho letto l'articolo ke mi hai dato con il link ed è quello che ho fatto ma mi da sempre errori ad esempio uno è quello dell'operatore "+"
Questo funziona perfettamente l'ho testato.
I problemi erano:
non possiamo usare c_str() se dobbiamo mettere il valore di una stringa in una stringa!! In questo modo al posto di fare stringa = stringa + stringa + stringa diventa stringa = stringa + const char + stringa!!
Il comando c_str() è da usare invece dove usiamo il ofstream.
Comunque il codice è: