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

[c++] Wczytanie danych

Ostatnio zmodyfikowano 2014-07-07 19:40
Autor Wiadomość
grzeso
Temat założony przez niniejszego użytkownika
» 2014-07-03 23:04:24
a nie znasz jakiejś prostszej metody, bo ja póki co to zielony jestem jak listek na wiosnę w c++. a chciałbym to napisac zeby prace sobie ułatwić i nie bujac sie z excelem
P-113250
Jacob99
» 2014-07-04 07:34:07
Kurs STL - vector, cpp0x.pl
To chyba najłatwiejszy do obsługi kontener dla początkującego.
P-113253
michal11
» 2014-07-04 14:14:35
C/C++
string linia;

ifstream plik( "plik.txt" );

while( getline( plik, linia ) )
{
    // tutaj odpowiednio sobie parsujesz dane
}

Może też ci się przydać http://www.cplusplus.com​/reference/string/string/
P-113262
grzeso
Temat założony przez niniejszego użytkownika
» 2014-07-05 20:48:54
Dzięki wielkie wszystkim za pomoc.

michal11, wykorzystałem twój pomysł

i pojawiło się kolejne pytanie, jak zrobić żeby w ostatniej linijce nie dodało linijki z zerami?

wymyśliłem coś takiego:
C/C++
std::fstream plik2( "wygenerowane.txt", ios::out );

for( int j = 1; j < i; j++ )
{
    plik2 << n[ j - 1 ] << comma << x[ j - 1 ] << comma << y[ j - 1 ] << endl;
    std::cin.clear();
    std::cin.sync();
}
plik2.close();

i żeby zawsze przy wykorzystywaniu danych zaczynać od wiersza 1 i wszędzie pisać ze dana wartość to wartość z wiersza n-1 w tabeli. dzięki temu skorzystam z pierwszej danej (wiersz 0) ale nie skorzystam z ostatniej (niepożądany wiersz z zerami)

tylko to taki pomysł trochę na przypal, a ja bym chciał to porządnie zrobić
P-113339
pekfos
» 2014-07-05 20:56:24
Nie sprawdzasz błędów, bez żadnego sensu czyścisz std::cin i niepotrzebnie kombinujesz z 1.
P-113341
grzeso
Temat założony przez niniejszego użytkownika
» 2014-07-05 21:04:06
z czyszczeniem masz racje, zapomniałem wywalić.
potrzebnie kombinuje z 1 bo nie sprawdzam błędów
a skoro zacznę sprawdzać błędy to nie będę musiał kombinować z 1

dzięki za inspiracje, problem rozwiązany

info dla kolejnych pokoleń:

C/C++
string linia;
fstream plik2( "AAApkt.txt", ios::out );
ifstream plik( "dane.txt" );
int i = 0;
while( getline( plik, linia ) )
{
    plik >> n[ i ] >> comma >> x[ i ] >> comma >> y[ i ]; //odczyt danych
   
    if( plik.fail() )
         break; //rozwiązanie problemu z błędnym ostatnim wierszem
   
    cout << x[ i ] << "  " << y[ i ] << endl; //wypisanie na ekran
    plik2 << n[ i ] << comma << x[ i ] << comma << y[ i ] << endl; //wypisanie do pliku
    ++i;
}
plik2.close();
plik.close();
P-113342
grzeso
Temat założony przez niniejszego użytkownika
» 2014-07-05 22:12:28
A możecie mi napisać czemu wiersz zerowy się nie wczytuje?

Przykładowe dane:

1,1.2195,12.9771
2,4.21204,99.98979
3,6.2111,1.98052
4,55.212,3.972
5,95.21,25.97
P-113346
Monika90
» 2014-07-05 22:32:05
Pierwszy wiersz wczytujesz do zmiennej linia, a potem nic z tą zmienną nie robisz, więc co się dziwisz?

a wystarczyło by tak
C/C++
while( i < 50 &&( plik >> n[ i ] >> comma >> x[ i ] >> comma >> y[ i ] ) )
{
    cout << x[ i ] << "  " << y[ i ] << endl; //wypisanie na ekran
    plik2 << n[ i ] << comma << x[ i ] << comma << y[ i ] << endl; //wypisanie do pliku
    ++i;
}
P-113349
1 2 « 3 » 4 5
Poprzednia strona Strona 3 z 5 Następna strona