Dubbio su array

di il
6 risposte

Dubbio su array

Ho notato una cosa,se scrivo int v[] allora per riempire v col cin deve usare per forza il for,cioè devo scrivere:for(int i=0;i<r;i++) cin>> v,invece se scrivo char v[] allora posso riempire il vettore senza il for,scrivendo solo cin>>v,come mai questa differenza?

6 Risposte

  • Re: Dubbio su array

    Perche l'operatore >> della classe cin è studiato per fare così tratta il char * come stringa e int * come un vettore di int. E' stato progettato così perche ha + senso fare così., se no ogni stringa lo dovevi mettere carattere x carattere.
  • Re: Dubbio su array

    Pero una cosa non mi è chiara,ad esempio in un programmino semplice come questo:
    #include <iostream>
    using namespace std;
    void leggi(char a[])
    {
    cout<<"scrivi a";
    cout<<endl;
    cin>>a;}
    int main()
    {char b[5];
    leggi(b);
    cout<<b;
    system("pause");
    return 0;}
    anche se imposto che il vettore deve avere 5 elementi ho notato che se ne scrivo più di 5 il programma li registra lo stesso,ad esempio se scrivo"abcdefg" che ha 7 elementi il vettore b sarà uguale a abcdefg,come mai?
  • Re: Dubbio su array

    No. il vettore b avrà 5 elementi non di+. se ne ha di + è per tua incuria e non per colpa delle funzioni. dovresti essere tu ad imporre al programma di non scrivere oltre il 5 elemento. in debug a me da un errore perche o oltrepassato gli indice del vettore b.
  • Re: Dubbio su array

    Non so perchè ma con dev c++ mi fa scrivere più di 5 elementi,ma il programmino come l'ho scritto è giusto comunque?
  • Re: Dubbio su array

    Dev c++ è vecchio e non + usato. Se vuoi usare qualcosa di decente c'è: CodeBlocks, visual Studio Express e QT, tutti e tre gratuiti.
  • Re: Dubbio su array

    Ho istallato codeblocks ma non ci capisco niente
Devi accedere o registrarti per scrivere nel forum
6 risposte