• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie mogę zrobić programu JEBUT z kursu pasja informatyki C++

+1 głos
309 wizyt
pytanie zadane 14 lutego w C i C++ przez niven Nowicjusz (150 p.)
edycja 14 lutego przez niven

Hej robię programik z tego poradnika:

https://www.youtube.com/watchv=y6GOYVTVvqo&list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo&index=4

Nie działa System ("cls") w Visual Studio Code. W terminalu Windowsowym działa a w Visual Studio Code nie działa dlaczego?

Używam Windows 11 Home x64.

 

#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>

using namespace std;


int main()
{
    for (int i=15; i>=0; i--)
    {
    
    Sleep(1000);
    system ("cls");

    cout << i << endl;
    }
    cout << "JEBUT";

    return 0;
}
komentarz 14 lutego przez WojAbuk Gaduła (3,460 p.)
Było by łatwiej gdybyś dał swój kod zamiast niedziałającego linku do YT. Ogólnie nie jesteśmy w stanie ci nic powiedzieć nie widząc kodu. Dodatkowo, to jest polecenie specyficzne dla Windows, a skoro używasz Visual Studio Code do pisania w C++, to nie jestem pewny jakiej platformy używasz, bo na Windows prościej się używa Visual Studio.
komentarz 14 lutego przez niven Nowicjusz (150 p.)
Edytowałem pierwszy post. Mam nadzieje, że poprawnie. Dodałem potrzebne informacje
komentarz 14 lutego przez WojAbuk Gaduła (3,460 p.)
Ja ogólnie używam Linuksa i nie widzę błędu, który podawał by nie działanie kodu oprócz użycia funkcji specyficznej dla Windows, ale to nie tłumaczy dlaczego, to nie działa, ale ta odpowiedzi wygląda w mirrę sensownie https://chat.deepseek.com/share/inkf79u7qj6g5ru05m
komentarz 14 lutego przez niven Nowicjusz (150 p.)

 

2. Skonfiguruj terminal w VSCode

W VSCode:

  • Naciśnij Ctrl + , (otwórz ustawienia)

  • Wyszukaj "terminal integrated shell args"

  • Dodaj: "-NoExit" dla PowerShell lub odpowiednie argumenty dla cmd  

Nie mam w ustawieniach "terminal integrated shell args" i nie mam także  "-NoExit" 

Na tej stronie piszą, żeby używać zewnętrznego terminala co sądzisz o cmder?

komentarz 14 lutego przez WojAbuk Gaduła (3,460 p.)
Chyba CMD i tak w Windows masz wybór między CMD i PowerShell twój program powinien działać w CMD, ale w PowerShell nie i z opisu wynika, że to jest właśnie ten problem.
komentarz 14 lutego przez niven Nowicjusz (150 p.)
Nie mogę zmienić domyślnego PowerShell na CMD. Gdy ustawiam w ustwieniach command prompt. I nawet ustawiam nowy terminal usuwam PowerShell to i tak terminal działa w PowerShell
komentarz 14 lutego przez WojAbuk Gaduła (3,460 p.)
Ok, to przy szybkim zerknięciu do dokumentacji PowerShell powinno działać System("Clear-Host") ale czy pierwsza opcja rozwiązania u ciebie działa?
1
komentarz 14 lutego przez niven Nowicjusz (150 p.)
Ok, to przy szybkim zerknięciu do dokumentacji PowerShell powinno działać System("Clear-Host")

Co mam zrobić z System("Clear-Host")?

ale czy pierwsza opcja rozwiązania u ciebie działa?

Pierwsza tzn która? Którą opcję masz na myśli?
1
komentarz 14 lutego przez WojAbuk Gaduła (3,460 p.)

To jest pierwsza opcja i u mnie nie działa, bo korzysta z funkcji specyficznych dla Windows, a jak pisałem ja używam Linuksa. 
 

#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;

void clearScreen() {
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coord = {0, 0};
    DWORD count;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    
    GetConsoleScreenBufferInfo(hStdOut, &csbi);
    FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);
    SetConsoleCursorPosition(hStdOut, coord);
}

int main() {
    for (int i=15; i>=0; i--) {
        Sleep(1000);
        clearScreen();  // zamiast system("cls")
        cout << i << endl;
    }
    cout << "JEBUT";
    
    return 0;
}

System("Clear-Host") to jest odpowiednik System ("cls") w PowerShell. Oba polecenia robią to samo z tego, co zrozumiałem w dokumentacji, ale jedno działa w PowerShell, a drugie w CMD. 

1
komentarz 14 lutego przez niven Nowicjusz (150 p.)
Gdy uruchmiam z komendą clear host zamiast cls mam krzaczki i błąd:

Clear-Host' is not recognized as an internal or external command,
1
komentarz 14 lutego przez WojAbuk Gaduła (3,460 p.)
Ja nie widzę, co się dziej u ciebie i też nie używam zbytnio Windows. Ogólnie, to co robisz, to używasz funkcji Windows, które są w Windows tylko ze względu na kompatybilność wsteczną z DOS, więc to może działać różnie, tym bardziej, że Microsoft w Windows 11 dużo pozmieniał w terminalu, a terminal od czasów Windows 2000 do Windows 10 był prawie bez zmian.

Ogólnie do pisania programów terminalowych polecam jedno z dwóch podejść: ograniczyć się do biblioteki standardowej lub użyć biblioteki ncurses. Druga opcja daje większe możliwość, ale nie działa na Windows. Biblioteka ncurses jest zalecaną metodą pisania interaktywnych aplikacji tekstowych w C/C++ na chyba wszystkie systemy wzorowane na Unix.
1
komentarz 15 lutego przez niven Nowicjusz (150 p.)
A może tak jak napisał neo1020, zmienić domyślny terminal z PowerShell na na przykład Command prompt problem w tym, że po mimo zmiany ustawień na domyślny Command prompt cały czas jest PowerShell. Może gdzieś jeszcze trzeba zmienić domyśłny terminal?

1 odpowiedź

+2 głosów
odpowiedź 14 lutego przez neo1020 Stary wyjadacz (10,530 p.)

Problem jest w tym jaką powłokę uruchamiasz w terminalu VSC

zobacz na zdjęcie niżej i sprawdź u siebie gdzie masz (Default), cls obsługiwany jest wyłącznie przez PowerShell i Command Prompt 

 

1
komentarz 14 lutego przez niven Nowicjusz (150 p.)
edycja 14 lutego przez niven
Gdy wybieram comamnd promt jest bez zmian. Ustawiłem w VS Code command prompt jako domyślny w ustawieniach i to nie pomogło. Bo vs code działa dalej w powershellu. Chyba, że robię coś nie tak

Podobne pytania

–2 głosów
1 odpowiedź 452 wizyt
pytanie zadane 11 lutego 2019 w HTML i CSS przez szalony_kojot11 Nowicjusz (120 p.)
0 głosów
4 odpowiedzi 1,130 wizyt
0 głosów
1 odpowiedź 316 wizyt
pytanie zadane 28 września 2017 w Rozwój zawodowy, nauka, praca przez rice Początkujący (440 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...