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 |