Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 38
  1. #21
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Aggiungi:
    codice:
    #include <vector>
    using namespace std:
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  2. #22
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    grazie, un'altra cosa:
    qual è il tipo della matrice tab[][],
    mi serve per dichiarare vettori nei
    quali copiare il contenuto della stessa?

  3. #23
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Errata corrige:
    non
    codice:
    using namespace std:
    ma
    codice:
    using namespace std;
    Beh il tipo è.
    codice:
    vector < vector <string> > tab;
    Per l'esattezza:
    tab[x] restituirà un < vector <string>
    tab[x][y] restituirà string

    alla fine avrai qualcosa del genere:
    codice:
        int val = atoi(tab[x][y].c_str());
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  4. #24
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    Perchè aggiungi ".c_str()" ?

    Per scrivere un'uguaglianza del tipo: vettore[j]=tab[j][1]
    il vettore[] come lo definisco?

    grazie mille per tue risposte!

  5. #25
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    ho postato un altro quesito a parte perchè
    la risposta penso possa tornare utile a qualcunaltro
    che riguarda come creare un puntare che punti un elemento della
    matrice tab[][], che come abbiamo detto è una stringa.

    grazie

  6. #26
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Aggiungo c_str() perché atoi (come altre funzioni C) richiede una const char* non una std::string

    P.s.
    Rispondi solo a uno dei due thread altrimenti non si capisce più niente.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #27
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    ok,grazie, questo mi è chiaro.
    Quindi per il puntatore sai come posso fare,invece?
    Inoltre per scrivere un'uguaglianza del tipo: vettore[j]=tab[j][1]
    il vettore[] come lo definisco?


    scusa, ma mi è nuovo questa sintassi (ma è programmazione ad oggetti?)
    e come avrai capito non sono un'informatica!

    grazie

  8. #28
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    Mi da problemi la definizione alla riga 7
    perchè mi dice che la dimensione dell'ggetto val non
    dovrebbe essere dichiarata...


    m=0;
    for(i=0;i<sz;i++)
    {
    for(j=0;j<a;j++)
    {
    if(i==m*6){
    double val[j][i]=atof(tab[j][i].c_str());
    m++;};
    };
    }

  9. #29
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    E' programmazione a oggetti in senso lato. Ci limitiamo a usare quelli standard, non a implementarli.

    Quella sintassi è sbagliata. Se devi utilizzare una matrice di double, devi dichiararla prima di usarla. Anche qui puoi usare i vector in modo simile alla tab di string:

    codice:
        vector < vector <double> > tab_double;
        m=0;
        tab_double.resize(sz); // crea lo spazio per le righe
        for(i=0;i<sz;i++)
        {
            tab_double[i].resize(a); // crea lo spazio per le colonne e va fatto per ogni riga    
            for(j=0;j<a;j++)
            {
                if(i==m*6)  {
                  tab_double[i][j]=atof(tab[i][j].c_str());
                  m++;
                }
           }
        }
    Questo è il sistema più semplice in C++. Lavorando con array stile C occorrerebbe lavorare con allocazioni dinamiche che il vector gestisce di suo con le resize().
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  10. #30
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    Shodan, scusa ma mi da un errore che non capisco, compila, ma poi:

    "terminate called after throwing an instance of 'std::length_error'
    what(): vector::_M_fill_insert
    Aborted"


    Il codice è il seguente:
    #include "stat.h"
    #include <stdlib.h>
    #include <stdio.h>
    #include "rng.h"
    #include "math.h"
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <vector>

    using namespace std;

    #define SPACE << "\n " <<
    #define SP << " " <<

    const int F500_maxcomp=500;

    #define MAIN 1;



    int main(){
    int m,i,j,a,sz;


    fstream indata("dati 2 aziende.txt",ios::in);
    indata.seekp(0,ios::beg); //positioning at the beginning of the file
    vector < vector <string> > tab;
    vector < string > tabline(10);
    string line;
    while (getline(indata,line)) {
    istringstream iss(line);
    int sz = tabline.size();
    for (int i = 0; i < sz; i++) {
    iss >> tabline[i];
    }
    tab.push_back(tabline);
    };

    a=tab.size();


    cout<< "in n di linee è:"SP a<<endl;


    vector < vector <double> > tab_double;
    m=0;
    tab_double.resize(sz); // crea lo spazio per le righe
    for(i=0;i<sz;i++)
    {
    tab_double[i].resize(a); // crea lo spazio per le colonne e va fatto per ogni riga
    for(j=0;j<a;j++)
    {
    if(i!=m*6) {
    tab_double[i][j]=atof(tab[i][j].c_str());
    m++;
    }
    };
    }

    cout<< "l'elemento è:"SP tab_double[2][3]<<endl;


    exit(0);

    }

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.