Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Příspěvky - petr_bures

#1
Vývoj / Re:Objasnění chyb v C++
23. 02. 2020, 23:45:01
Citace od: mudrlant kdy 23. 02. 2020, 23:25:33
V C++ můžete s řetězci pracovat v zásadě dvojím způsobem - buď nízkoúrovňově, což se jedná o buffer se sekvencí bytů ukončený nulovým bytem (neuvažuji teď UTF16 kódování) - pokud tento buffer někam chcete předat, často předáváte jen adresu jeho pořátku (pointer typu char *).
Nebo můžete používat nějaký wrapper nad bufferem, který poskytuje obvyklé řetězcové funkce. Dřív si mnohé knihovny definovaly svůj warpper (QString, wxString, atd.), teď už jeto naštěstí standardizováno v std::string apod. třídách.

V kódu používáte funkci remove(char*), která očekává adresu nízkoúrovňového bufferu, ale vy jí předávat zaobalovací typ.
Musíte tedy v tomto případě předat adresu bufferu, který je zaobalen. std::string na to má metodu c_str(), takže v kódu použijete výraz remove(file.c_str()).
Díky a to je řešní, aby se vlk nažral, nebo je to správně?
#2
Vývoj / Re:Objasnění chyb v C++
23. 02. 2020, 23:41:50
A jak poznám, že je to kód pro C a ne pro C++?
#3
Vývoj / Re:Objasnění chyb v C++
23. 02. 2020, 22:12:53
No to jsi mě nikam neposunul..  :)
#4
Vývoj / Objasnění chyb v C++
23. 02. 2020, 20:48:27
Tento kód mě vypisuje 6 chyb, proč? Dělal jsem to podle tutoriálu a výsledek tohle  >:(
#include <iostream>
#include <vector>
#include <string>

using namespace std;

string filesPath = "\\Users\\Petr\\Documents\\Temp";

vector<string> txt;

int i = 0;

void delfile(const string file){
          if (remove(file)) {
                    cout << "Error!";
          }
          else {
                    cout << "Success!";
          }
}

void addtxt() {
          txt.push_back("aaaaaaaaaaaaaa");
          txt.push_back("bbbbbbbbbbbbbb");
}

int main(){
          addtxt();
          delfile(filesPath + "\\" + txt[i]);
}




Chyba (aktivní) E0413 Neexistuje žádná vhodná funkce pro převod z "const std::string" na "const char *". program C:\program.cpp 14
Chyba C2664 int remove(const char *): Nejde převést argument 1 z: std::string na: const char *. program C:\program.cpp 14
Chyba C2146 Chyba syntaxe: Chybí ; před identifikátorem cout. program C:\program.cpp 14
Chyba C2429 vlastnost jazyka příkazy init-statement v if/switch vyžaduje příznak kompilátoru /std:c++17 program C:\program.cpp 14
Chyba C2059 chyba syntaxe: << program C:\program.cpp 14
Chyba C2181 neplatné else bez odpovídajícího if program C:\program
#5
Tady jsem něco našel, ale nejde mi to, třeba na to nějaký profík mrkne..

https://stackoverflow.com/questions/2496857/is-there-a-function-in-c-that-does-the-same-as-raw-input-in-python
#6
Citace od: _Jenda kdy 23. 02. 2020, 00:31:48
knihovna readline - hmm, je pod GPL, ale našel jsem https://github.com/antirez/linenoise

knihovna ncurses

je to opruz a jeden z důvodů, proč preferuji psát programy v Pythonu a když potřebuju něco céčkového (lowlevel nebo výkon), tak z toho vyrobím modul přes CFFI

možná by šlo použít program rlwrap nebo rlfe (ten mi teď poradilo apt), který ti to tam dodělá

Jenže v Pythonu z toho ve výsledku neudělám jeden přenositelný soubor, tam kde to budu chtít spustit musím všechno nainstalovat. A ta ukázka taky není běžně v knihovně, musí se doinstalovat kdo ví co všechno :(

PS jedná se mi o Windows terminál
#7
Citace od: František Ryšánek kdy 22. 02. 2020, 23:36:53
šimrá mě v zátylku ungetc() .

Nevím jestli jsi to pochopil, hledám způsob jak je to tady, Po spuštění se hned vloží text který v tom řádku můžu editovat. Je to ukázka z pythonu.
https://i.stack.imgur.com/8ikmg.gif
#8
Citace od: ondrama kdy 22. 02. 2020, 22:59:29
Neni jednodussi vypsat "Zadejte vase jmeno (Petr):" A pokud uzivatel to odbouchne entrem, jmeno bude Petr...

Tak to nechci

Citace od: ondrama kdy 22. 02. 2020, 22:59:29
.. jinak vstup z console?  :-)
??

#9
Ahoj, můžu k tomuto scriptu (nebo jinému) přidat nějaký text, který se vloží do terminálu pokud zavolám tento kód?
Příklad, spustím tento kód a vytiskne se
Zadejte vaše jméno:
chci aby se vytisklo
Zadejte vaše jméno:Petr
a přitom ten text Petr za dvoutečku aby šel v rom řádku editovat.

string name ;
cout << "Zadejte vaše jméno:";
getline(cin, name ) ;
cout << "Hello " << name << endl ;



Díky
#10
Citace od: František Ryšánek kdy 22. 02. 2020, 09:09:27
Citace od: petr_bures kdy 20. 02. 2020, 15:53:28
Jak spočítat ve vektoru počet položek - nemožné - 4 hodiny života - bez výsledku. Fakt nevím..


vector<int> a;
int velikost;
velikost = a.size();


Tři minuty googlení :-)

Jistě, tři minuty googlení, na webu je spousta rad o ničem - prostě nefungují.
#11
Citace od: neregistrovany kdy 22. 02. 2020, 01:51:47
Citace od: petr_bures kdy 20. 02. 2020, 22:43:25
Citace od: neregistrovany kdy 20. 02. 2020, 22:01:55
ANSI sekvence ESC25l vam nefunguje?
Asi nefunguje :(

Tak asi nebo urcite??? Zkousel jste to?

Jasně, že jsem to zkoušel, ono se to tváří, že je to ok, ale realita je někde jinde. Na tohle byl nejlepší ncurses.
#12
Citace od: Cikáda kdy 20. 02. 2020, 23:02:49
Nebylo by opravdu lepší začít s něčím lehčím a menším?
Zkusím pokračovat s tím C++, tam aspoň dokážu něco napsat. Tohle má sice doku česky ale žádné základy co je co tam nepopisují.
#13
Citace od: neregistrovany kdy 20. 02. 2020, 22:01:55
ANSI sekvence ESC25l vam nefunguje?
Asi nefunguje :(

Tak jsem to všechno stáhl a nainstaloval, vytvořil jsem nový projekt ve Visual Studio 2019 a v Test.cs mám

using System;

namespace Test
{
          class Program
          {
                    private static void Main()
                    {
                              Console.WriteLine("Hello World!");
                    }
          }
}


Nikde nevidím, že bych volal tu třídu, jak to, že to funguje?

PS: C# funkce neumí? Nemůžu to najít. Díky
#14
Zatím se mi tedy nejvíc líbí C#, sice nevím ani jak se to čte (asi cékřížek?)  8) ale asi to zkusím.
Když něco hledám a dám k tomu C# vždy to najde nějaký .NET Framevork, jaký je mezi nimi rozdíl?
.NET Framework vs .NET Core. Dá se to popsat jednou větou? Díky
#15
Citace od: tecka kdy 20. 02. 2020, 17:53:49
Tak když ho C++ zklamalo obtížností vypnutí kurozoru v terminálu, tak je v první řadě potřeba říct, že takové věci neřeší žádný programovací jazyk.
Aha - tak to je ale velmi důležitá informace..