Názory ke článku C++ - 3. lekce - test
Zdravim, preco mi vynechalo niektore znaky ked vsetky ostatne vypisalo. Konkretne nevypisalo pre char 7 8 9 10 13.
Dakujem za odpoved.
Protoze ASCII obshuje znaky ktere maji hodnotu jen symbolickou pro PC nikoli viditelnou pro uzivate.
Nevim proč, ale při výpisu mi to vypisuje úplně jiné znaky a jiné čísla než jsou v ASCII!
4. 3. 2006
Napsal jsem tento kód.
#include <iostream>
using namespace std;
int main()
{
char znak;
for (znak = 1; znak < 255; znak++)
{
cout << znak;
}
cout << "Konec";
cin.get();
return 0;
Jenomže když tento program spustím, tak ten cyklus nikdy neskončí a počítač pořád pípá. Čím to je?
Trochu som ti to upravil....
#include <iostream>
using namespace std;
int main()
{
char znak[200];
int cyklus;
for (cyklus = 0; cyklus < 200; cyklus++)
{
cout << znak[cyklus] << "\n";
}
cout << "Konec";
cin.get();
return 0;}
Třetí úkol jsem zvládl, jenom bych se rád zeptal na jednu drobnost. Jak to mám udělat, aby se mi znaky vypsali do několika sloupců vedle sebe (aby byla efektivně využita celá obrazovka). Děkuji
mozna by to slo tak, ze: vypsani znaku, par medzer, zase znak, a nakonec \n, do dalsiho radku... pokusim se to udelat cez cyklus..
me st povedlo akorat sem zjistil ze napriklad znak pro or ║ nejde napsat v dev c++ podle ascii tabulky alt 186
Pisu sice s velkym spozdenim oproti vam,ale zajimalo by me to same jestli se da ten vypis nejak formatovat, aby se hodnoty vypsaly do sloupcu vedle sebe!
for (int i = 1; i < 256; i++){
cout << char(i) << "\t";
if (i % 4 = 0) cout << endl; // jediny problem je, ze vypise na prvy /// riadok len 3 hodnoty
}
Kdyz bude vas pocitac vypisovat znaky s ascii hodnotami 9 az 13, tak tyhle znaky nebudou viditelne. Maji vsak svou funkci - napr. prechod na dalsi radek, tabulator a pod.
Kdyz chceme zobrazit tabulku znaku, tak aby se nam nerozhazela, muzeme pouzit nalsedujici program (znaky jsou pekne usporadane v sloupcich a sloupce jsou oddeleny svislymi carami:
<b>
#include <iostream>
using namespace std;
int main()
{
int i=0;
int a=0;
char cara=179;
while (i<=255) {
for (a=1; a<=9; a++) {
if(i>255) {
break;
}
char znak=i;
if (i<9 || i>13) {
cout << cara << i << ": " << znak << "\t";
}
else {
cout << cara << i << ": " << " " << "\t";
}
i=i+1;
}
cout << endl;
}
cin.get();
return 0;
}</b>
ASCII tabulka nesouhlasi se zkratkami Alt + xxx. Pro napsani znaku ║ ve svem editoru pouzij zkratku levy Alt + 18 ;) Pokud ovsem v editoru pouzivas spravne pismo (ne jako to co je na zdejsi strance). Ale v Dev-C++ to funguje.
sice uz je asi pozde na toto odpovidat, ale mozna to jeste nekdo bude procitat:
tusim ze
cout << "\t"; //jako tabulator treba ve wordu
cout << "\r"; // vrati kurzor na zacatek
ted si nejsem uplne jistej, jeslti jsou ty znaky spravne, ale urcite neco takovyho existuje...
Je v tomto úkolu možné používat funkci printf místo cout? V seriálu o C jsem nenašel žádnou zmínku o tom jak vyřešit problém jako je v tomto úkolu.
Mohl byste mi někdo poradit, prosím? Pomocí funkce printf můžeme vypisovat text ( printf("text") ) nebo hodnoty ( printf("%hodnota",hodnota) ), ale je možné vypsat, předem zadaný znak? Jako je potřeba v tomto úkolu??
10. 8. 2007
zkus napsat
#include <iostream>
using namespace std;
int main()
{
unsigned char znak;
for (znak = 1; znak < 255; znak++)
{
cout << znak;
}
cout << "Konec";
cin.get();
return 0;
10. 8. 2007
Zkus pouzit tohle:
for(int i = 0; i<256; i++)
printf("%d - \'%c\'\n", i, unsigned char(i));
Čestík!
Když napíšu tento program:
#include <iostream>
using namespace std;
int main()
{
int x;
for (x=0; x<=255; x++)
{
char pismeno = x;
cout << x << " - " << pismeno << endl;
}
cout << "
";
system("pause");
return 0;
}
tak vše funguje, ovšem když dám char pismeno před for, tak se mi vypisuje jen jeden znak(přitom číslo x se mění). Takže ve finále mám nalevo sloupec čísel od 0 do 255 ale napravo mám jen jeden znak u všech. Chtěl bych vědět čím to je.
Reagoval na komentář od uživatele Xindar :
Dobré, už sem na to přišel. bohužel jsem nenašel nikde tlačítko na smazání předchozí zprávy...
27. 5. 2009
moja verzia
#include <iostream>
using namespace std;
int main(){
for (int i=0;i<=255;i++){
if (i%20==0) cout << "\n";
char a=i;
cout << " " << a;
}
cout << "\n";
system("pause");
return(0);
}
20. 7. 2009
Nechápu co to tu řešíte tak složitě, stačí to napsat takhle..:
#include <iostream>
using namespace std;
int main(){
int characterNumber = 0;
char characterId = characterNumber;
while (characterNumber <= 255) {
cout << characterNumber++ << " = " << characterId++ << endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int odpoved;
cout << "chcete aby se vam vypsala komletni ASCII tabulka se vsemy 255 znaky??
(ano = 1/ne = 0) ";
cin >> odpoved;
if (odpoved == 1)
for(int i = 1; i<255;i++){
cout << "alt + " << i << "= ";
char a=i;
cout << a;
cout << "
";
}
else if (odpoved == 0){
cout << "tento program vytvoril david lahuta KONEC!!!!
";
}
else{
cout << "Neco jsi zadal spatne!!
";
cout << "seru na tebe!!
S pozdravem David Lahuta
";
}
cin.get();
cin.get();
return 0;
}
Jo tohle my trvalo hodně dlouho než jsem to zesmolil xDDD nejvic sem se zapotil při tom vytisknuti vysledneho znaku "alt + i = #" ale nakonec jsem nato prisel(s pomoci _4Ce)
Ale jinak fakt supr kurz!! GJ....
3. 11. 2009
Reagoval na komentář od uživatele Paja... :
do výstupu si napiš
cout << pismeno << " ";
těch mezer je tam 7, protože textový rozhraní má na řádku 80 polí, takže se ti srovnaj po deseti na jednom řádku (nezapomeň na samotnej znak)... kdyby sis to chtěl ještě číslovat tk nezapomeň za každou číslici (číslii, ne číslo!) musíš ubrat jednu mezeru jinak se ti to rozhodí
16. 1. 2010
#include <iostream>
using namespace std;
main()
{
int i;
for (i=1;i<=255;i++)
{
cout << i;
char a[3];
a[0]=i;
cout << " " << a[0] << endl;
}
cin.get();
return 0;
}
29. 3. 2010
#include <iostream>
using namespace std;
int i=0;
char k=0;
int main(){
while (i < 256)
{
cout << "alt + " << i << " = " << k << "\n";
i++;
k++;
}
cin.get();
cin.get();
}
4. 4. 2010
Reagoval na komentář od uživatele Douchebag :
Chci se zeptat jestli by jsi mi mohl vysvetlit ten kod :D trosku sem to nepobral kde ze je ten kod co vypisuje ty znaky :D
Preco mam pocit ze som to z vas urobil najjednoduchsie ? :D
#include <iostream>
using namespace std;
int main ()
{
int i;
for ( i=0; i<=296; i++ )
{
char znak=i;
cout << znak << " - " << i << endl;
}
cin.get();
return 0;
}
17. 5. 2011
Reagoval na komentář od uživatele Lernias :
mam pocit ze to mam jeste jednodussi :D
for(int i=0;i<256;i++)
{
cout<<"Ascii hodnota : "<<i<<" , Znak : "<<char(i)<<endl;
}
29. 6. 2011
Správně se to zobrazí jen v okně 80×25 znaků.
Znaky budou zarovnané do sloupců.
// Verze pro obrazovku 80×25
// Vynechany jsou znaky 7, 8, 9, 10 a 13.
#include <iostream>
using namespace std;
int main()
{
int a;
char znak;
for ( a=1; a<=255; a++ )
{
znak = a;
if ( !( (a > 6) && (a < 14) ) || (a == 11) || (a == 12) )
{
if (a < 10)
cout << znak << " " << a << " ";
if ( (a >= 10) && (a < 100) )
cout << znak << " " << a << " ";
if ( (a >= 100) && (a < 255) )
cout << znak << " " << a << " ";
if (a == 255)
cout << znak << " " << a;
}
}
cin.get();
return 0;
}
Zdravim,
takhle nejak vypada muj pokus:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char znak;
ofstream fout("znaky.txt");
fout<<"CISLO\t-\tZNAK\n";
for (int i=0;i<256;i++)
{
znak = i;
cout<<i<<"\t-\t"<<znak<<endl;
fout<<i<<"\t-\t"<<znak<<endl;
}
fout.close();
cin.get();
return 0;
}
Na obrazovku se mi to vypisuje spravne, ale resim jiny problem. Krom toho, aby mi to vypsalo cisla a znaky, jsem chtela, aby se mi to ulozilo do souboru. No a obsah souboru se neshoduje s obsahem obrazovky. Kde je chyba?
Vytvoreny soubor se mi v PSpadu otevre v HEX editoru a zobrazit text se mi tam nedari. Kdyz soubor otevru v poznamkovem bloku, text se mi zobrazuje. Ze misto nejakych tech smajliku se mi zobrazuji kosticky, to by me tolik netrapilo. Ale ze se mi to nekde po 125 znaku zacne lisit od toho, co mam na obrazovce, to me docela znepokojuje.
Zjistila jsem, ze v PSpadu se mi to v tom HEX editoru zobrazuje kvuli tomu, ze to je binary a ne textovy soubor, prestoze jsem ios::binary nepouzila (zrejme je to automaticky). Da se nejak udelat, aby to byl normalni textovy soubor? Pomuze to v tom, aby se mi to nelisilo? A nebo to tim vubec neni a nekde tam mam chybu, pripadne jakou?
Diky.
(Teď po napsání toho všeho jsem se dočetla, že mám používat diakritiku, tak příště kdyžtak.)
zdravím programátoři můj program vypadá takto :
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int i;
char ch;
for (i=33;i<=255;i++){
ch = i;
cout << i << " - " << ch << endl;
}
return 0;
}
všechno funguje jen po nějakém 125 znaku to už píše něco jiného než je v ascii prosim poraďte děkuji :)
kontroloval jsem to a rozhodí se to u 127 dál už to nesouhlasí
#include <iostream>
using namespace std;
int main()
{
int heslo;
cout<<"Zadajte prosim heslo:";
do
{
cin>>heslo;
}while (heslo != 1234);
cout<<"\nVase heslo je spravne";
int pass;
cout<<"\nZadaj Prosim vase heslo:";
cin>>pass;
if (pass == 4321)
cout<<"\nVase heslo je spravne";
else
cout<<"\nVase heslo je nespravne";
int i;
cout<<"\nZadali ste heslo"<<pass;
cout<<"\nSpravne heslo malo byt="<<4321;
int pas;
cout<<"Zadaj prosim posledne heslo pre odmenu...:";
do
{
cin>>pas;
}
while (pas != 1245);
cout<<"Vase heslo je spravne prosim odmena->";
int pozdrav;
cout<<"Ak ste heslo uhadli nieco pre vas:";
cout<<"Volam sa Stefan P. a programujem v C++";
cout<<"Dovidenia.";
cin.get();
cin.get();
return 0;
}
malý programík zo srandy
#37 stif
- Nepochopil jsem význam toho programu?
- Navíc tam nemáte ani podmínku, když uživatel zadá špatné heslo.
- Příště použijte \n a endl, ať to máte přehlednější.
Hodně štěstí.
#38 pulsik
:D:D:D....vtipné veď to je už história...tu som sa učil teraz sa učim z Místrovství v C++.... to neber tak vážne:D
#39 stif
V pohodě :D ... Jinak tu "bibli" vlastním taky a nemohu si stěžovat.
7. 10. 2012
#4 Candy
#include <iostream>
using namespace std;
int main()
{
int znak=1;
while (znak <= 255 )
{
cout <<(char) znak<<endl;
znak=znak+1;
}
cout << "Konec";
system ("pause");
return 0;
}
#include <iostream>
using namespace std;
int main()
{
for (int x=0; x<256; x++){
char mark=x;
cout << mark << " " << x <<endl;
}
cin.get();
cin.get();
return 0;
}
28. 6. 2013
Patlal jsem se s tím dlouho aby to bylo ve sloupcích, a nakonec se to povedlo :)
#include <iostream>
using namespace std;
int main()
{
int z;
for (z=1;z<7;z++)
{
char znak=z;
cout << znak << " = " << z << " ";
}
int y;
for (y=11;y<13;y++)
{
char znak2=y;
cout << znak2 << " = " << y << " ";
}
int x;
for (x=14;x<100;x++)
{
char znak3=x;
cout << znak3 << " = " << x << " ";
}
int v;
for (v=100;v<255;v++)
{
char znak4=v;
cout << znak4 << " = " << v << " ";
}
cin.get();
cin.get();
return 0;
}
6. 4. 2015
#4 Candy
for cyklus sa robi pomocou premennej typu integer, char pouzivas iba na vypis znakov. Takto je to spravne.
#include <iostream>
using namespace std;
int main()
{
int i;
char c;
for(i=0; i<300; i++){
c=i;
cout << "Znak " << i << " v ASCI tabulke je:" << c << endl;
}
cin.get();
cin.get();
return 0;
}