problem ze wstrzymaniem programu
Ostatnio zmodyfikowano 2012-09-10 14:08
| marichuan Temat założony przez niniejszego użytkownika | problem ze wstrzymaniem programu » 2012-09-07 16:02:21 Mam problem tego typu, że chcę wyświetlić tablice ASCII w 4 kolumnach (to udało mi się zrobić) i chciałbym żeby wyświetlanie tejże tablicy w konsoli zatrzymywało się po 24 kolumnach. Następnie po naciśnięciu dowolnego klawisza na klawiaturze wyświetliło następne 24 kolumny. Dopiero zaczynam swoją przygodę z programowaniem więc byłbym bardzo wdzięczny za udzielenie pomocy. Poniżej znajduje się to do czego na razie doszedłem. 
 #include <iostream>
 
 
 int main( int argc, char * argv[] )
 {
 std::cout << "   TABLICA KODOW ASCII   " << std::endl;
 std::cout << "-------------------------" << std::endl;
 std::cout << std::endl;
 
 for( int i = 32; i < 256; )
 {
 
 for( int licz = 0; licz < 4; licz++ )
 {
 std::cout << "| " << static_cast < char >( i ) << "==" << i++<< " | ";
 }
 
 std::cout << std::endl;
 if( 127 < i )
 getchar();
 
 }
 
 | 
|  | 
| kubawal | » 2012-09-07 16:11:45 | for( int i = 32; i < 256; ) | 
  Powinno być  for( int i = 32; i < 256; i++ ) | 
|  | 
| marichuan Temat założony przez niniejszego użytkownika | » 2012-09-07 16:38:59 Dlaczego tak uważasz??? Wydaje mi się, że kiedy ostatnio czytałem o pętli for to było tam napisane, że nie trzeba podawać wszystkich warunków. A poza tym chodzi mi głównie o te wstrzymanie wyświetlania tablicy. Zrobiłem w pierwszej wersji tak jak teraz radzisz z i++ i program działał nieprawidłowo tzn. co czwarty znak opuszczał jeden znak :-)   | 
|  | 
| akwes | » 2012-09-07 17:34:57 @kubawal
 nie zauważył, że i++ jest w środku pętli.
 
 Możesz spróbować użyć niestandardowej funkcji getch() z conio.h, aczkolwiek jest ona zwykle dostępna wyłącznie na systemy win.
 | 
|  | 
| RazzorFlame | » 2012-09-07 18:00:17 | std::cout << "| " << static_cast < char >( i ) << "==" << i++<< " | "; | 
 Te rzutowanie równie dobrze możesz zapisać tak:  char( i )  ale też  ( char ) i Aha właśnie jeszcze jeśli chciałeś odrazu wyświetlić i+1 "<< i++<<..." to nie zadziała. Trzeba użyć preinkrementacji. Jeśli nie to zignoruj to :) | 
|  | 
| akwes | » 2012-09-07 18:14:45 @RazzorFlame
 1.
 Dlaczego każesz mu używać gorszego rzutowania, skoro użył poprawnego w stylu C++ a nie C?
 
 2.
 Skoro on chce wyświetlić znaki ASCII, to jak sądzisz jak będzie wyświetlał? Chyba zgodnie z wartością jaka jest w znaku char, a nie o jeden większą. Eh...
 | 
|  | 
| RazzorFlame | » 2012-09-07 18:22:25 @akwes Ja nie mówie że MUSI tak pisać. Ja tylko powiedziałem jak jest szybciej. I dlaczego gorszego? | 
|  | 
| akwes | » 2012-09-07 18:33:34 @RazzorFlame, ale mieszasz mu w głowie. Oba rzutowanie nie są tożsame, więc nie można powiedzieć, że może wybrać to albo to. Rzutowanie w C-stylu oraz rzutowanie C++ ma za sobą idące konsekwencje. Nie bez powodu twórcy języka stworzyli casty, żeby używać rzutowania w C-stylu, które zostało aby zachować kompatybilność z C. Rzutowania C++ dostarczają więcej informacji czytającemu kod oraz są bezpieczniejsze, co na etapie nauki pozwoli uniknąć głupich błędów z powodu nieznajomości zachowań rzutowania w C-stylu.http://technojazda.wikidot.com/standardcpp#toc24 | 
|  | 
| « 1 »  2 |