C++ prepisovanie/ obnovovanie jedneho miesta v cmd

Programovacie jazyky, rady, poradňa...
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

C++ prepisovanie/ obnovovanie jedneho miesta v cmd

Príspevok od používateľa reDo »

mam program ktory vypisuje 1%2%3% atd az do 100%
a nwm ako mam prepisovat na jedno miesto tie cisla poradite pls? tu mam zatial taky smejd robil som to cez cls ale to je zle riesenie poradite lepsie pls?

Kód: Vybrať všetko

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    
    
    
    for(int i=1;i<=100;i++)
    {
    system("cls");
    
    cout<<i<<"%"<<endl;
    Sleep(1000);
}
system("pause");
}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

môžeš si spraviť ekvivalent gotoxy funkcie známej z pascalu, nejak takto by vypadala

Kód: Vybrať všetko

#include <windows.h>
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x; coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_H ANDLE), coord);
}
a potom pred každým výpisom (pred tým cout) zavoláš gotoxy(1,1) aby sa nastavil na prvý stlpec prvého riadku (prípadne inú pozíciu)

//edit: vlastne teraz sa mi niečo marí že ak máš borland tak tam gotoxy je v conio.h
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

no ale ja som videl taky jeden zdrojak kde je to spravne bez toho gotoxy ukazem
tam sa generuju cisla na jednom mieste a tak by som to chcel aj ja skuste a uvidite
Prílohy
getch.rar
tu je ten priklad spuste to getch test.exe
(9.97 KiB) 19 stiahnutí
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ak máš zdroják tak si pozri ako to tam je. Ak nemáš, ako môžeš tvrdiť že je to bez gotoxy? :)
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

v to getch je vsetko kukni sa ale tam je to dost zlozite pochopit skusal som to uz par krat ale neviem jak to sprvil autor skusil osm to ja ja podbne ako on ale neslo to
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

máš to tam okomentované, on to robí tak, že vypíšeš číslo a vráti sa na začiatok riadku:

Kód: Vybrať všetko

.
.
.
for (k = 1;  k <= j;  k++) {
      putchar('\b');
    }
.
.
.
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

takze to je lepsie ako to co si mi poradil ty ci nie?? a zdrojak bude vyzerat takto?

Kód: Vybrať všetko

#include <iostream>
#include <windows.h>
#include <cstdio>
using namespace std;
int main()
{
   
   
   
    for(int i=1;i<=100;i++)
    {
    putchar('\b');
    putchar('\b');
    putchar('\b');
    cout<<i<<"%";
    Sleep(1000);
}
system("pause");
}  
pretoze mi to inak neslo
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

reDo napísal:takze to je lepsie ako to co si mi poradil ty ci nie?? a zdrojak bude vyzerat takto?

Kód: Vybrať všetko

#include <iostream>
#include <windows.h>
#include <cstdio>
using namespace std;
int main()
{
   
   
   
    for(int i=1;i<=100;i++)
    {
    putchar('\b'); 
   
    cout<<i<<"%"<<endl;
    Sleep(1000);
}
system("pause");
} 
ak nepotrebuješ skákať aj medzi riadkami, ale iba z konca riadku na začiatok, tak to použiť môžeš. Či je to lepšie ťažko povedať. A v tom zdrojáku máš chybu, v cykle bude iba putchar('\b') a cout aj so sleepom bude mimo (teda celé to bude v ďalšom cykle). Pozri si poriadne ten príklad a ak mu nerozumieš tak si najprv dober základy
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

uz som to opravil takto

Kód: Vybrať všetko

#include <iostream>
#include <windows.h>
#include <cstdio>
using namespace std;
int main()
{
   
   
   
    for(int i=1;i<=100;i++)
    {
    putchar('\b');
    putchar('\b');
    putchar('\b');
    cout<<i<<"%";
    Sleep(1000);
}
system("pause");
}  
jedna otazocka od veci ako sa vola funkcia alebo makro v C/C++ ktora dokaze spustit iny program, zabudol som to ale zda sa mi ze start ale neni to dobre poradte pls
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ja sa z teba už musím smiať :D
pýtaš sa na veci ktoré tam dokonca používaš, je to system()

btw: ten tvoj kod nie je stále dobre napísaný, ale ak ti to funguje tak som rád že nemáš ďalšie otázky :)
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

a das priklad na pouzitie toho system("start"); nwm kde sa zadava cesta k suboru to jest subor :) viac otazok nemam
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

kde som ja kedy napísal že tam má byť system("start")? Napísal som že je to system. Do zátvorky ako parameter dáš už názov programu aj s cestou ktorý chceš spustiť. Že by bol nejaký program start vo win32, o tom neviem
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

tak teda prepacte sry moja chyba :oops: :aasmile11:
Napísať odpoveď