[C++]Otwieranie kolejnych plików i zapis danych w tablicy.
Ostatnio zmodyfikowano 2014-03-08 20:35
dziubeQ Temat założony przez niniejszego użytkownika |
[C++]Otwieranie kolejnych plików i zapis danych w tablicy. » 2014-03-08 17:32:32 Mam za zadanie napisać program analizujący statystyczne dane liczbowe. Poradziłem sobie z otwarciem wszystkich plików, które bym chciał, jednak wystąpił problem, gdyż dane liczbowe zapisane w tablicy są typu string. Będę wykonywał na nich obliczenia więc wolałbym je jaki int kiedy zmieniam definicję program nie kompiluje się. Oto kod: #include <iostream> #include <fstream> #include <iomanip.h>
using namespace std;
int poczatek, koniec;
void drukowanie() { do { cout << "\nPodaj numer pierwszego pomiaru: "; cin >> poczatek; cout << "Podaj numer ostatniego pomiaru: "; cin >> koniec; } while( koniec < poczatek ); int size = 0; for( int licznik = poczatek; licznik <= koniec; licznik++ ) { char sciezka[ 260 ] = "C:\\zap"; const char rozszerzenie[ 5 ] = ".txt"; char licz[ 3 ]; string tresc; ifstream otworz; strcpy( sciezka, "C:\\zap\\" ); itoa( licznik, licz, 10 ); strcat( sciezka, licz ); strcat( sciezka, rozszerzenie ); otworz.open( sciezka ); if( otworz.good() == true ) cout << "Pomiar " << licznik << ": " << setw( 5 ); else cout << "Pomiar " << licznik << " niedostepny"; while( otworz.good() == true ) { getline( otworz, tresc ); size++; cout << tresc << setw( 3 ); } cout << endl; otworz.close(); int tab[ size ]; } for( int licznik = poczatek; licznik <= koniec; licznik++ ) { char sciezka[ 260 ] = "C:\\zap"; const char rozszerzenie[ 5 ] = ".txt"; char licz[ 3 ]; string tresc, tab[ size ]; int k = 0; ifstream otworz; strcpy( sciezka, "C:\\zap\\" ); itoa( licznik, licz, 10 ); strcat( sciezka, licz ); strcat( sciezka, rozszerzenie ); otworz.open( sciezka ); while( otworz.good() == true ) { getline( otworz, tresc ); tab[ k ] = tresc; k++; } otworz.close(); } }
int wybor; int main() Ktoś pomoże, jak mam to rozwiązać albo gdzie zmienić kod. |
|
pekfos |
» 2014-03-08 17:43:21 Użyj atoi() do zamiany tekstu na int. Przy okazji popraw nagłówek iomanip.h na iomanip i tworzenie tablic (wszystkie tablice tab są niepoprawnie utworzone) |
|
dziubeQ Temat założony przez niniejszego użytkownika |
» 2014-03-08 17:59:17 Wiem, wyświetla mi, że tablica jest zła, ale deklarując ją globalnie nie znam jeszcze size, czyli ilości liczb :/ A jak mam ją w funkcji to potem i tak nie mogę z tej tablicy skorzystać poza nią... Nie ogarniam
@edit: atof działa, tylko nie wiem jak poradzić sobie z tą tablicą. Jak wpisuje w main drukowanie całej forem i<size to jest undeclared :/
@edit2: atof wyzerował mi wszystkie liczby przypisane do pierwszej tablicy stringów. Z sizem poza funkcją już sobie poradziłem. |
|
MrPoxipol |
» 2014-03-08 19:56:16 @edit2: atof wyzerował mi wszystkie liczby przypisane do pierwszej tablicy stringów. | atof() zwraca 0 jeśli string nie zawiera liczby. |
|
dziubeQ Temat założony przez niniejszego użytkownika |
» 2014-03-08 20:35:29 string powinien zawierać liczbę, jednak teraz jak chce wydrukować tę tablicę stringów nic nie wyświetla a jak drukuję double'ów to wyskakuje mi tyle zer ile powinno być różnych liczb. KOD: while( otworz.good() == true ) { getline( otworz, tresc ); tab[ k ] = atof(tresc.c_str()); k++; } lub: double a[256]; for(int z=0; z<dl; z++) a[z]=atoi(tab[z].c_str()) ; oba do stringów nic, do intów/double'ów zera. |
|
« 1 » |