Domanda programma che stampa la stringa immessa finche la stringa e piena

Stato
Discussione chiusa ad ulteriori risposte.

Pr0Ryder93

Utente Electrum
14 Gennaio 2010
264
67
14
174
Codice:
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string vuota = "ciao a tutti " ;
    cout << " immetti una stringa(CTRL+Z per terminare) " << endl;
    getline(cin, vuota);
    if(vuota.empty( ))
    cout << " la stringa e vuota " << endl;
    if(! vuota.empty( ))
    cout <<"la stringa immessa e " << vuota << endl;
}
 
Appunti:
  • Quando fai una variabile, dalle un nome decente... vuota non è un nome adatto ad una stringa che verrà riempita :p
  • Se vuoi puoi evitare di inizializzare una stringa: verrà inizializzata automaticamente con "" (vuota), e in questo caso non sarà un problema considerato che la riempirai subito
  • Se hai appena controllato se una stringa è vuota, non ha senso controllare immediatamente dopo la stessa cosa... usa un else
  • Considerando che quando prendi da cin una stringa, significa che l'utente l'ha inserita nel terminale, ha poco senso ristamparla subito dopo :sisi:
  • Se non lo conoscessi, qua puoi trovare la documentazione di tutte le librerie della standard library (tra cui string, vector, iostream, fstream) con una spiegazione completa + esempi delle funzioni...

  • Non so se tu volessi ottenere ciò, ma mi è parso di capire che tu volessi fare un while che fin quando la stringa non fosse stata vuota avrebbe ri-chiesto l'inserimento... almeno, questo è l'applicazione più ovvia che ne farei io...

Prova a farlo, magari tenendo conto dei miei appunti :)
(consiglio: una delle soluzioni, anche per avere sempre il fatto del ctrl+Z → Esci, potresti fare un while con due condizioni: il valore di ritorno del getline, che fa interrompere il ciclo se trova un EOF (simulato con ctrl+Z) e un !stringa.empty() che controlla se la stringa contiene qualcosa)
 
Stato
Discussione chiusa ad ulteriori risposte.