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

Problem z pobieraniem danych z pliku

Ostatnio zmodyfikowano 2015-05-03 20:09
Autor Wiadomość
Patrix
Temat założony przez niniejszego użytkownika
Problem z pobieraniem danych z pliku
» 2015-05-03 17:07:22
Witam mam dziwny problem a mianowicie posiadam taki plik txt:
zmienne
3 4
macierz_a
1 2 3 4
5 6 7 8
9 10 11 12
macierz_b
4 2 0 0 0
koszty
1 2 3 4 5
Napisałem program by w zależności od stringa jaki wyłapie z pliku wpisywał dane do innych struktur np. jeśli wyłapie napis "Zmienne" to wartości 3 i 4 przypisuje zmiennym, jeśli "macierz_a" to wypełnia tablicę A itd. Program wszystko ładnie wypełnia za wyjątkiem tablicy "C" która ma być wypełniona jak string=="koszty", wtedy przy wypisaniu wyskakują jakieś chore liczby w tej tablicy.
C/C++
#include<stdafx.h>
#include<iostream>
#include<cstdio>
#include<fstream>
#include<string>


using namespace std;

int main()
{
    int A[ 10 ][ 10 ];
    int B[ 10 ];
    int C[ 10 ];
    int m = 0;
    int n = 0;
    string napis;
   
   
   
    ifstream plik;
    plik.open( "pliczek.txt" );
   
    if( plik.good() == true ) {
        plik >> napis;
        if( napis == "zmienne" ) {
            plik >> m;
            plik >> n;
        }
        plik >> napis;
        if( napis == "macierz_a" ) {
            for( int i = 0; i < m; i++ ) {
                for( int j = 0; j < n; j++ ) {
                    plik >> A[ j ][ i ];
                }
            }
        }
        plik >> napis;
        if( napis == "macierz_b" ) {
            for( int i = 0; i < m; i++ ) {
                plik >> B[ i ];
            }
        }
        plik >> napis;
        if( napis == "koszty" ) {
            for( int i = 0; i < n; i++ ) {
                plik >> C[ i ];
            }
        }
    }
   
    cout << "m= " << m << endl;
    cout << "n= " << n << endl;
    cout << endl;
    cout << "A" << endl;
    for( int i = 0; i < m; i++ ) {
        for( int j = 0; j < n; j++ ) {
            cout << A[ j ][ i ] << " ";
        }
        cout << endl;
    }
    cout << endl;
    cout << "B" << endl;
   
    for( int i = 0; i < m; i++ ) {
        cout << B[ i ] << " ";
    }
    cout << endl << endl;
    cout << "C" << endl;
   
    for( int i = 0; i < n; i++ ) {
        cout << C[ i ] << " ";
    }
   
    return 0;
}
P-131720
pekfos
» 2015-05-03 20:09:02
Za dużo wartości masz podanych w pliku przy "macierz_b". Masz 5, a program oczekuje trzech.
P-131723
« 1 »
  Strona 1 z 1