Ragazzi ma per gestire le stringhe in c++ c'è una libreria apposita?? Se c'è mi dice come si chiama??
Ragazzi ma per gestire le stringhe in c++ c'è una libreria apposita?? Se c'è mi dice come si chiama??
Alla batteria dai retta ballA
se no usi le stringhe stille c(array di char)
cogli l'attimo
Bene ora stavo eseguendo un semplice esercizio che in pratica vuole in un vettore di strutture formato da 2 campi inserire per ogni casella il nome e l'età di una persona; ora ho seguito un pò il link da voi postato ma qualcosa nel mio codice non va, potreste vedere dove ho sbagliato??
codice:const int max_dim=30; struct persona { std::string nome; int eta; }; typedef persona vettore[max_dim]; void leggi_vett(const vettore, int &); void stampa_vett(const vettore, int);codice:#include <iostream> #include <string> #include "lib.h" using namespace std; int main() { using std::string; int riemp; vettore v; leggi_vett(v, riemp); stampa_vett(v, riemp); system("PAUSE"); return 0; }codice:#include <iostream> #include <string> #include "lib.h" using namespace std; using std::string; void leggi_vett(const vettore v, int &riemp) { int i; cout<<"riempimento"<<endl; cin>>riemp; cout<<"inserisci"<<endl; for(i=0; i< riemp;i++) { std::cin>>v[i].nome; cin>>v[i].eta; } } void stampa_vett(const vettore v, int riemp) int i; cout<<"elementi del vettore"<<endl; for(i=0; i<riemp;i++) { std::cout<<v[i].nome; cout<<v[i].eta; } }
Prechè si continua a scrivere
"non va"
invece di dire cosa non va ?
Perchè devono essere gli altri a scoprire, non solo la soluzione, ma anche il problema?
Cosa vi vuole a dare le informazioni che servono ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Scusa ci sto perdendo la testa da un pò di ore a capire gli errori non è che appena vedo qualche stranezza subito posto... sono alle prime armi nella programmazione e visto che non riesco a capire sti benedetti errori volevo un parere di una persona più esperte di me tutto qui non è che sto a scuola e chiedo la soluzione di un esercizio...sto studiando il c++ per fatti miei xD
Il problema è che non puoi pretendere che gli altri copino il tuo codice, lo incollino, lo compilino e lo eseguano così alla cieca.
Ciascuno usa un compilatore diverso, su ambienti diversi e potrebbero dare input diversi per ottenere risultati diversi.
Sei tu che devi dire QUALI sono gli errori e in quale fase li ottieni: compilazione? Esecuzione?
Il compilatore riporta tutti gli errori ottenuti in fase di compilazione, appunto. Nessuno ti chiede di decifrarli, ma di riportarli nella discussione, se ne hai.
Se ottieni errori in fase di esecuzione devi dire QUALI errori ottieni e con QUALI input li hai ottenuti (se rilevante). O in quale fase dell'esecuzione pensi si sia sollevato l'errore.
Il primo passo per imparare a programmare è imparare a correggere i propri errori. Nessuno chiede che tu lo sappia già fare, ma almeno mettere gli altri in condizioni di farlo, fornendo tutte le indicazioni necessarie.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
oregon non sta criticando il fatto che tu stia chiedendo aiuto, ma piuttosto il fatto che tu dici genericamente "non va" invece di descrivere gli errori che ti vengono segnalati dal compilatore (o quelli che si verificano a runtime), costringendo così chiunque voglia risponderti a creare i file corrispondenti ai tuoi e a compilare il tutto. Specificando direttamente gli errori che fornisce il compilatore, invece, chi legge può vedere al volo dove sta il problema.
---EDIT---
Tardi...
Amaro C++, il gusto pieno dell'undefined behavior.
ok ora riposto il codice
codice:const int max_dim=30; struct persona { std::string nome; int eta; }; typedef persona vettore[max_dim]; void leggi_vett(const vettore, int &); void stampa_vett(const vettore, int);codice:#include <iostream> #include <string> #include "lib.h" using namespace std; using std::string; int main() { int riemp; vettore v; leggi_vett(v,riemp); stampa_vett(v,riemp); system("PAUSE"); return 0; }ecco l'errore : lib.cpp In function `void leggi_vett(const persona*, int&)':codice:#include <iostream> #include <string> #include "lib.h" using namespace std; using std::string; void leggi_vett(const vettore v, int &riemp) { int i; cout<<"inserire riempimento"<<endl; cin>>riemp; cout<<"inserire valori nella struttura"<<endl; for(i=0; i< riemp; i++) { std::cin>>v[i].nome; cin>>v[i].eta; } } void stampa_vett(const vettore v, int riemp) { int i; cout<<"elementi della struttura"<<endl; for(i=0;i<riemp;i++) { std::cout<<v[i].nome; cout<<v[i].eta; } }
no match for 'operator>>' in 'std::cin >> ((+(((unsigned int)i) * 8u)) + v)->persona::nome'
PS: scusate se prima ho fatto una polemica nel post precedente ma stamattina non riuscendo a comprendere bene il problema ero arrabbiato ed intrattabile;
Probabilmente il problema lo risolvi eliminando il const inOriginariamente inviato da ciro_90
ecco l'errore : lib.cpp In function `void leggi_vett(const persona*, int&)':
no match for 'operator>>' in 'std::cin >> ((+(((unsigned int)i) * 8u)) + v)->persona::nome'
void leggi_vett(vettore v, int &riemp)
No MP tecnici (non rispondo nemmeno!), usa il forum.