W jaki sposób szybko i łatwo stworzyć tablicę bez ograniczenia rozmiaru?
Ostatnio zmodyfikowano 2008-10-08 17:38
invisiblekid Temat założony przez niniejszego użytkownika |
» 2008-10-08 14:21:50 włąśnie tak myślałem że to może być wektor, ale tak do końca nie wiedzałem jak jej używać. Dzieki wielkie! Napisze ten program od nowa ale miałbym jeszcze jedno pytanko: co to jest to słowo kluczowe "volatile"? |
|
invisiblekid Temat założony przez niniejszego użytkownika |
» 2008-10-08 16:35:03 Napisałem więc taką funkcję: #include<iostream> #include<vector> #include<conio.h> #include <console.ddt>
using namespace std; using namespace ddt::console; vector < int > tablica; int liczba; bool finito = false; std::string koniec; int wypiszCiag();
void WyswietlKomunikaty() { gotoxy( 1, 25 ); textcolor( 12 ); cout << "Aby komtynuowac wcisnij dowolny klawisz "; cout << "[ESC] Wyjscie "; return; }
int main() { textcolor( 15 ); cout << "Program pobiera ciag liczb i wykonuje na nich operacje /n (albo ma w planach wykonywanie informacji)." << endl; do { if( tablica.size() > 0 ) { clrscr(); cout << "Wprowadziles liczby: "; } textcolor( 7 ); for( int i = 0; i < tablica.size(); i++ ) cout << tablica[ i ] << ", "; cout << endl; cout << "Wprowadz liczbe: " << endl; cin >> liczba; tablica.push_back( liczba ); cout << "Czy chcesz zakonczyc wprowadzanie? [T/N] :"; cin >> koniec; if(( koniec == "t" ) ||( koniec == "T" ) ) finito = true; } while( finito = true ); WyswietlKomunikaty(); unsigned char znak = getch(); switch( znak ) { case 27: koniec = true; break; } return( 0 ); } Program działa prawie jak powiniem poza faktem że nie reaguje na pytanie "Czy zakończyć wprowadzanie?" (jeżeli wprowadzimy t-jak tak, zmienna logiczna finito powinna zmieniec wartośc na true, nie robi tego jednak- gdzie tym razem popełniłem bład? Mam jeszcze jeden problem: jak stworzyć filtr który by nie dopuścił do wprowadzenia litery zmiast cyfry podczas wprowadzania ciągu, ponieważ wtedy program sie psuje (konkretnie chodzi mi o to jak sprawdzić czy to co użytkownik wprowadził jest cyfrą a nie czymkolwiek innym)? /edit 1: Btw: jak zrobić aby kod, który wprowadzam formatował sie tak jak Pan go później formatuje? (kiedyś to umiałem ale teraz nie pamietam :P) |
|
DeBugger |
Głupi błąd, ale każdemu zdarzyć się może. » 2008-10-08 16:53:59 Ten fragment kodu wydaje się dziwny: while( finito = true ) Zgubiłeś znak równości? :P |
|
dudek |
» 2008-10-08 17:38:30 Tu jest jak formatowac tekst [code src="C++"] tutaj kod [/code]
A co do Twojego problemu jak zrobic zeby program sie nie wysypywal kiedy wstawi sie litere. Sprobuj zrobic tak zebys wszystko wczytywal jako stringi i sprawdzal czy uzytkownik nie wpisuje czegos z poza zakresu 0 - 9 a potem konwertowal taki string do typu liczbowego. |
|
1 « 2 » |