Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Odczyt danych z pliku

Ostatnio zmodyfikowano 2015-09-12 20:29
Autor Wiadomość
tj_gumis
Temat założony przez niniejszego użytkownika
Odczyt danych z pliku
» 2015-09-12 19:42:38
Witam Panowie.

Zmagam sie teraz z odczytem danych z pliku tekstowym ulozonych kolumnami tak aby nastepnie zapisac je do dwuwymiarowej tablicy.
Testowe dane zapisane sa w pliku w ten sposob :

3,29 4,56 8,37
3,29 4,56 8,37
3,29 4,56 8,37

Za pomoca takiego kodu :

C/C++
double a;

ifstream myfile( "test.dat" );

if( myfile.is_open() )
{
   
    while( !myfile.eof() )
    {
        myfile >> a;
        cout << a << '\n';
       
    }
   
    myfile.close();
}

else cout << "Unable to open file";


i niestety wywala mi jedynie dlugasna serie pojedynczych "3". Czy moglby ktos mi zasugerowac rozwiazanie ?

Z gory dziekuje za pomoc.
P-137445
Monika90
» 2015-09-12 20:02:35
C/C++
#include <iostream>
#include <fstream>
#include <locale>

struct comma
    : std::numpunct < char >
{
    char do_decimal_point() const override { return ','; }
};

int main()
{
    std::ifstream file( "test.dat" );
    file.imbue( std::locale( file.getloc(), new comma ) );
    double x;
    while( file >> x )
    {
        std::cout << x << std::endl;
    }
}
P-137446
tj_gumis
Temat założony przez niniejszego użytkownika
» 2015-09-12 20:11:24
Ogromnie Ci dziekuje za reakcje. Z tego wszystkiego zapomnialem jeszcze dodac, ze docelowa tablica ma byc typu double wiec tak naprawde zmagam sie z problemem konwersji ...

Przepraszam za roztargnienie.
P-137448
Monika90
» 2015-09-12 20:19:27
Mój kod przecież wczytuje do zmiennej x, która jest typu double.
P-137449
tj_gumis
Temat założony przez niniejszego użytkownika
» 2015-09-12 20:29:20
Monika90

Faktycznie :). Prawde mowiac spanikowalem na widok elementow w Twojego kodu, z ktorymi do tej pory sie nie spotkalem i bez doglebnej analizy kodu - nie chcac pozostawic Twojej odpowiedzi bez mojej natychmiastowej reakcji skupilem sie na tym co wydawalo mi sie nie do konca jasne.

Bardzo, bardzo Ci dziekuje.
P-137450
« 1 »
  Strona 1 z 1