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

Program wczytujący dane z pliku nie wyświetla tego co powinien

Ostatnio zmodyfikowano 2013-06-09 10:59
Autor Wiadomość
n00bwcepie
Temat założony przez niniejszego użytkownika
Program wczytujący dane z pliku nie wyświetla tego co powinien
» 2013-06-08 18:32:45
Ten program ma wczytywać tablicę dwuwymiarową i ją wyświetlać.

C/C++
#include<fstream>
#include<iostream>
#include<cstdlib>
using namespace std;

int main()
{
    int x[ 3 ][ 3 ];
    int i = 0;
    int j = 0;
    ifstream fileInput( "dane.txt" );
   
    if( fileInput.is_open() )
    {
        while( !fileInput.eof() ) // dopóki nie natrafisz na koniec pliku
        { fileInput >> x[ i ][ j ];
            i++;
            j++;
        } }
   
    else
    {
        cout << "nieprawidlowe otwarcie pliku \n";
    }
    fileInput.close();
   
    for( int i = 0; i < 3; i++ )
    {
        for( int j = 0; j < 3; j++ )
        {
            cout << x[ i ][ j ] << " ";
           
        }
        cout << endl;
       
    }
    system( "pause" );
   
}

W tym samym folderze (pulpit) mam zapisany plik dane (w formacie .txt).

Zapis w pliku dane.txt wygląda tak:
1 2 3
4 5 6
7 8 9

Kompilować się kompiluje ale nie wyświetla niczego.

Bardzo dziękuję za ewentualne porady i rozwiązania.



P-85188
MrPoxipol
» 2013-06-08 18:38:02
Ładujesz tekst do zmiennych liczbowych.

Dokumentacja
Konwersja na liczbęFunkcje do konwersji łańcucha znaków do postaci liczbowej. (kategoria)
atofKonwertuje wartość zapisaną w łańcuchu znaków do postaci liczby zmiennoprzecinkowej (double). (funkcja)
atoiKonwertuje wartość zapisaną w łańcuchu znaków do postaci liczby typu całkowitego (int). (funkcja)
atolKonwertuje wartość zapisaną w łańcuchu znaków do postaci liczby typu całkowitego (long). (funkcja)
P-85189
pekfos
» 2013-06-08 18:43:16
C/C++
fileInput >> x[ i ][ j ];
i++;
j++;
Jak chcesz tak wczytać wszystkie pola?
P-85190
n00bwcepie
Temat założony przez niniejszego użytkownika
Dziękuję.
» 2013-06-08 19:49:07
Zacząłem od rady pekfosa, który zwrócił mi uwagę na ELEMENTARNY błąd. Zrobiłem podwójną pętlę i o dziwo to działa bez problemów na które zwrócił uwagę MrPoxipol. Ładnie mi w okienku komend wyświetla macierz:

1 2 3
4 5 6
7 8 9

Mr Poxipol, To co wysłałeś przeczytam później, ponieważ wygląda na ważne i ciekawe.

Dzięki Wam obu.

Swoją drogą ciekawe czemu tak jest. Oświeci mnie ktoś?
P-85197
jankowalski25
» 2013-06-08 22:09:57
Ładujesz tekst do zmiennych liczbowych.
Przeciążone operatory klasy ifstream automatycznie dokonują odpowiednich konwersji. Podane funkcje są potrzebne, jeśli wczytujemy cały plik do zmiennych tekstowych, a następnie chcemy to wpisać do zmiennych liczbowych.
P-85211
n00bwcepie
Temat założony przez niniejszego użytkownika
Dzięki za wszystko!
» 2013-06-09 10:59:40
Bardzo fajnie poznawać tajniki programowania na tym portalu.
Zamykam.
P-85235
« 1 »
  Strona 1 z 1