Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34

Discussione: [C++] Rubrica

  1. #1

    [C++] Rubrica

    Ciao a tutti.
    Sto cercando di creare una rubrica in C++.
    Fin ora ho tirato giů questo codice:

    #include <iostream>
    #include <fstream>
    using namespace std;

    bool write_ppl(); //prototipo della funzione write_ppl()
    void ask_pll(); //prototipo della funzione ask_ppl()

    int main()
    {

    int scelta;
    char s[];

    while (1)
    {
    cout<<"1- Leggere la rubrica"<<endl;
    cout<<"2- Aggiungere un nuovo contatto"<<endl;
    //cout<<"3- Uscire"<<endl; da implementare
    cin>>scelta;

    switch(scelta)
    {
    case (1):
    {
    fstream txt=("docs/ppl.txt", ios:ut);
    txt>>s;
    txt.close()
    cout <<s;
    break;
    }
    case (2):
    {
    write_ppl();
    break;
    }
    default:
    {continue;}
    }
    }
    return 0;
    }

    //funzione che scrive i contatti sul file docs/ppl.txt
    bool write_ppl()
    {
    string nome[15], cognome[15], email[50], tel[10];

    fstream txt=("docs/ppl.txt", ios::in);

    cout<<"Inserisci il nome: "<<endl;
    cin>>nome;
    cout<<"Inserisci il cognome: "<<endl;
    cin>>cognome;
    cout<<"Inserisci l'email: "<<endl;
    cin>>email;
    cout<<"Inserisci il numero di telefono: "<<endl;
    cin>>tel;

    txt <<nome<<" "<<cognome<<" - "<<tel<<" - "<<email; //scrivo i dati nel file
    txt.close();

    return true;
    }
    appena do il comando:
    g++ -c RuC++.cpp
    per compilare il programma mi da una sfilza di errori:

    RuC++.cpp: In function ‘int main()’:
    RuC++.cpp:12: error: storage size of ‘s’ isn't known
    RuC++.cpp:25: error: conversion from ‘const std::_Ios_Openmode’ to non-scalar type ‘std::fstream’ requested
    RuC++.cpp: In function ‘bool write_ppl()’:
    RuC++.cpp:47: error: conversion from ‘const std::_Ios_Openmode’ to non-scalar type ‘std::fstream’ requested
    RuC++.cpp:50: error: no match for ‘operator>>’ in ‘std::cin >> nome’
    /usr/include/c++/4.3/istream:123: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_istream<_CharT, _Traits>& (*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:127: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:134: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:170: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(bool&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:174: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(short int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:177: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(short unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:181: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:184: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:188: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:192: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:197: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long long int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:201: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:206: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(float&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:210: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(double&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:214: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long double&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:218: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(void*&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:242: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]
    RuC++.cpp:52: error: no match for ‘operator>>’ in ‘std::cin >> cognome’
    /usr/include/c++/4.3/istream:123: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_istream<_CharT, _Traits>& (*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:127: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:134: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:170: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(bool&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:174: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(short int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:177: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(short unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:181: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:184: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:188: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:192: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:197: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long long int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:201: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:206: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(float&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:210: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(double&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:214: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long double&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:218: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(void*&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:242: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]
    RuC++.cpp:54: error: no match for ‘operator>>’ in ‘std::cin >> email’
    /usr/include/c++/4.3/istream:123: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_istream<_CharT, _Traits>& (*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:127: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:134: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:170: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(bool&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:174: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(short int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:177: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(short unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:181: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:184: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:188: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:192: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:197: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long long int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:201: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(long long unsigned int&) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/istream:206: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>:perator>>(float&) [with _CharT = char, _Traits = std::char_traits<char>]

    e altri
    Perchč mi dice che non conosce le funzioni di fstream? sta inclusa la libreria...
    Sono su ubuntu 8.10 e compilo con g++

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sei sicuro che questa

    fstream txt=("docs/ppl.txt", ios:ut);

    sia la sintassi corretta?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    credo di si

    fstream dovrebbe aprire il file sia in lettura che scrittura, e ios:ut dice che deve aprirlo in lettura.
    Sbaglio?

    EDIT: Ho corretto la sintassi, quegli errori non me li da piů. ma questo?
    RuC++.cpp: In function ‘bool write_ppl()’:
    RuC++.cpp:42: error: no match for ‘operator>>’ in ‘std::cin >> nome’

    cioč non mi conosce nemmeno il cin>>???

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da sir daniel
    RuC++.cpp:42: error: no match for ‘operator>>’ in ‘std::cin >> nome’

    cioč non mi conosce nemmeno il cin>>???
    Veramente il messaggio d'errore si riferisce solo all'operatore >> ed e' giusto perche' il tipo di dato che vuoi usare (string, dato che nome e' di tipo string) non e' conosciuto in quanto manca

    #include <string>
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    ok, ho cancellato parti di codice, vado avanti un pň piů piano.
    Ora sono arrivato a questo punto:

    #include <iostream>
    #include <stdio.h>
    #include <string>
    using namespace std;

    int write_ppl(); //prototipo della funzione write_ppl()

    int main()
    {

    short int scelta;

    while (1)
    {
    cout<<"1- Leggere la rubrica"<<endl;
    cout<<"2- Aggiungere un nuovo contatto"<<endl;
    //cout<<"3- Uscire"<<endl; da implementare
    cin>>scelta;

    switch(scelta)
    {
    case (1):
    {
    break;
    }
    case (2):
    {
    write_ppl();
    break;
    }
    default:
    {continue;}
    }
    }
    return 0;
    }

    //funzione che scrive i contatti sul file docs/ppl.txt
    int write_ppl()
    {
    char stringa[4][50];

    cout << "Inserisci il nome: " << endl;
    cin >> stringa[1][15];
    cout << "Inserisci il cognome: " << endl;
    cin >> stringa[2][15];
    cout << "Inserisci l'email: " << endl;
    cin >> stringa[3][50];
    cout << "Inserisci il numero di telefono: " << endl;
    cin >> stringa[4][10];

    FILE * dati;
    dati=fopen("docs/ppl.txt", "w");
    fwrite(stringa, 1, sizeof(stringa), dati);
    fclose(dati);
    return 1;
    }
    Non riesco proprio a farlo scrivere sul file... nč in questo modo nč in quello precedente.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E perche' non usi piu' l'oggetto fstream?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    perchč non riuscivo a farlo scrivere con quello ed ho provato con fwrite

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da sir daniel
    perchč non riuscivo a farlo scrivere con quello ed ho provato con fwrite
    Scusa ... cerca di trovare il problema con quello ... ora hai un altro codice che non funziona, che fai, ne scrivi un terzo?

    Ritorna a quello precedente e vediamo cosa non va ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Ok, ecco qui:
    //funzione che scrive i contatti sul file docs/ppl.txt
    int write_ppl()
    {
    string stringa, nome, cognome, email, tel;

    cout << "Inserisci il nome: " << endl;
    cin >> nome;
    cout << "Inserisci il cognome: " << endl;
    cin >> cognome;
    cout << "Inserisci l'email: " << endl;
    cin >> email;
    cout << "Inserisci il numero di telefono: " << endl;
    cin >> tel;

    stringa=nome+" "+cognome+" - Tel: "+tel+" - email: "+email;
    ifstream dati=("docs/ppl.txt", 'a');
    dati << stringa; //equivale a fwrite
    //dovrebbe funzionare anche con dati.write(stringa) ma non funziona.
    dati.close();
    }
    E l'errore:
    RuC++.cpp: In function ‘int write_ppl()’:
    RuC++.cpp:53: error: conversion from ‘char’ to non-scalar type ‘std::ifstream’ requested
    RuC++.cpp:54: error: no match for ‘operator<<’ in ‘dati << stringa’

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti avevo gia' detto che questa

    ifstream dati=("docs/ppl.txt", 'a');

    era sbagliata ... e avevi risposto di avere risolto ...

    L' = non ci va ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.