#naukaprogramowania #ansic #cpp #linux
mam program w C który wypisuje mi coś na terminal linuxa.
Chciałem żeby z każdym wywołaniem programu mi czyściło ekran.
Problem w tym, że:
printf("/033[2J"); (lub to samo z coutem)
czysci ekran, ale wszystko się wypisuje na dole ekranu, a ja chcę na górze. Jak to osiągnąć?
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RedveKoronny: nie baw się w printfowanie ani tym bardziej w system(), tylko zamiast wykonywać program wykonuj skrypt shella który normalnie jak człowiek wyczyści ci terminal i odpali oryginalny program.
  • Odpowiedz
#naukaprogramowania #programowanie #cpp #linux

kiedyś widziałem Makefile, który sprawdzał które pliki zedytowałem, robił ich pliki z rozszerzeniem .o, i linkował w jeden plik do odpalenia. Pozwalało to nie kompilować na nowo plików których nie zmieniałem, co oszczędzało kupę czasu. Jak taki plik napisać?

Mój aktualny makefile:
CC=g++
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RedveKoronny: 1. Potrzebujesz wpis, który skompiluje pliki .o jeśli zmieniły się pliki .cpp:
%.o: %.cpp
$(CXX) $(CXXFLAGS) $< -c
2. Warto skorzystać z opcji MMD, bo plik cpp mógł zostać bez zmian, ale mogły się pozmieniać pliki nagłówkowe .h
3. W linijce "target:" dodajesz zależność od składowych obiektów .o
  • Odpowiedz
Mam pytanie odnośnie Cmake'a. Często używacie go pracując w c/c++? . Potrzebuję skonfigurować sobie środowisko pod testy jednostkowe, piszę głównie pod systemy embedded. Cmake podobno jest standardem wśród systemów budowania, jednak jego składnia jest trochę pokręcona wg. mnie. Wypadałoby się go nauczyć w tym celu i na przyszłość czy sobie odpuścić?

#embedded #programowanie #cpp
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ithan: odkąd ogarnąłem cmake nie chce wracac do zwykłego make

a przy okazji można do tego podpiąć czy to FetchContent, czy vcpkg, żeby mieć mniejszy ból głowy z podpinaniem zależności
  • Odpowiedz
@Ithan:

Często używacie go pracując w c/c++? .

Zawsze. Cmake to imho najlepsza rzecz jeśli chodzi o budowę projektów w c++. Na pewno jest dużo lepszy i prostszy niż jakieś autotoolsy dla bezdomnych.
  • Odpowiedz
Strasznie wczoraj zakodowałem, pisałem w cpp do 5 rano, fim mi się urwał jak pisałem Makefile, teraz mnie oczy n----------ą. Trochę się przespałem, ale musiałem wstać rano bo mam obowiązki, mam kaktusa. Niektórzy mówią, że nie można alokować pamięci w C jak leci, bo nie ma GC, ale to nieprawda. Można, tylko trzeba ręcznie dealokowac. Na tym polega odpowiedzialność.

#programowanie #programista15k #cpp #heheszki #
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rzulw: To mi przypomina, kiedyś impreza skończyła się o 2 w nocy i właśnie wtedy przypomniałem sobie że mam napisać program na zaliczenie ( ͡° ͜ʖ ͡°) Siadłem i zacząłem pisać, ale koło 4-5 przetrzeźwiałem, jeszcze raz przeczytałem opis zadania i niestety musiałem wszystko skasować i zacząć od początku ( ͡º ͜ʖ͡º) udało się zaliczyć
  • Odpowiedz
@KedanKedanowski: To wszystko zależy, czemu tego po prostu nie przetestujesz? Czasem w 1000 pętli może być szybszego niż jedną petla jeśli dobrze ułoży data pattern access po cache'u procesora.
Ogólnie jeśli chodzi o wydajność to zasada nr1: "benchmarking, benchmarking, benchmarking". A wyniki często będą różne pomiędzy architekturami.
  • Odpowiedz
@trzeci: Skad w ogole pomysł by usunac funkcje? Funkcje nie są alokowane na stercie tylko są fragmentem kodu programu jako sekcja ".text". Co chciałbyś przez to osiągnąć?
  • Odpowiedz
Cześć,

Napisałem interfejs dla fizycznych interfejsów pod #linux . Interfejs zawiera dwa kontenery pełniące rolę buforów. Następnie stworzyłem klasę implementującą Serial Port, która dziedziczy publicznie po Interfejsie te bufory. Czy da się lepiej przekazać typ buforów do interfejsu tak, żeby klasa SerialPort nie musiała implementować wszystkich metod jako template? Jedynę co potrzebuję, to zrobić template w metodzie write(), żeby określić typ danych.

Tutaj wstawiam pseudokod: pastebin
Celowo pominąłem implementację metod dla uproszczenia.
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval: zakładam że to tak 'dla nauki' ale problem jest znany i opisany szeroko.

Pierwsze primo nie generalizuj za szybko.
Będziesz zawsze gadać z konkretnym sprzętem np. akcelerometrem XYZ123. Czyli będziesz musiał mieć do niego driver bo wewnątrz jest mikroarchitektura diametralnie różna od twojej.
To jest dobry punkt centralny w myśleniu. 'w górę' udostępnia on dane o np. ilości kroków, rodzaju wykonywanej aktywności i przyspieszeniu w 3 osiach, itd. więc
  • Odpowiedz
#anonimowemirkowyznania
Kolejne pytanie o język #programowanie Ale spokojnie swoje już programowałem i wiem, że język to tylko narzędzie do rozwiązania problemu. Otóż pracowałem już kilka lat w desktop, potem kilka lat w embedded. Ale w moim mieście jest mało ofert w tych kierunkach i na moje możliwości dobiłem już sufitu. Chcę teraz uderzyć w #webdev Głównie programowałem w #cpp do tego różne narzędzia i
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Z jednej strony stoi #jezykc i ciekawość działania systemu, jak kolega ostatnio opowiadał jak działa SEGFAULT naprawdę mnie to wciągnęło, plus kwestia nauki #cpp żeby grzebać przy QMLkach w pracy - czyli zwiększanie swojej wartości w pracy.

Z drugiej strony stoi chęć pisania tego co lubię, czyli #csharp i #wpf - to mi sprawia przyjemność i po prostu lubię to robić.

Co byście wybrali?
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@NewEpisode:

Jeśli chodzi o pieniądze to najwięcej w tej chwili jest w szeroko pojętej web developerce. Patrząc że lubisz C# i WPF to najbliżej Ci będzie do ASP.NET Core. Aplikacje desktopowe zwłaszcza w takich jedno platformowych technologiach jak WPF to nisza. Do tego jak znasz C# i frameworki dotnetowe to po będzie Ci łatwiej się przesiąść na ASP.NET Core

Poza tym nikt Ci nie broni pracować w tym co lubisz
  • Odpowiedz
Przeglądnąłem tag do 3 miesięcy wstecz i nic nie znalazłem.

Potrzebuje tutoriali na necie odnośnie #cpp, w pracy będę zastępował juniora który ogarniał CPP + QML (Głównie QML - rozwój produktu opartego na Qt), za około półtorej miesiąca i chciałem już się podciągnąć żeby nie startować od zera. Aktualnie pracuje jako python dev od pół roku. Macie jakieś źródła wiedzy? Mile widziane na youtube, z książek nie potrafię się
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dlaczego po użyciu spacji podczas wypisywania elementu struktury, to to co po spacji przechodzi do drugiej zmiennej? Czyli wyskakuje mi podaj tytuł; wpisuje np Pan Tadeusz i pan się zapisuje jako tytuł, a tadeusz jako tytuł.

void fill (int a)
{
for (int i = 0; i < a; i++)
{
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp jak zrobić "prawdziwie globalną" zmienną? Mam klasę Dbgr ze zmienną statyczną Dbgr* oraz statycznymi funkcjami które patrzą czy ten wskaźnik jest pełny, a jeżeli tak - coś robią. Mam też funkcję createDbgr() która nie robi nic jeżeli ten wskaźnik już jest pełny. Efekt jest taki, że w zależności od tego skąd wywołam te funkcje, mam ten wskaźnik pełny lub pusty, a więc to nie jest globalna
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MamCieNaHita: jakby co, zgodnie z tym: https://stackoverflow.com/questions/8623657/multiple-instances-of-singleton-across-shared-libraries-on-linux - to co chcę jest niemożliwe w obrębie singletona w sposób nie wymagający OS-dependent rzeczy więc zrobiłem po prostu getInstance w każdej bibliotece do osobnych, statycznych pointerów i połączyłem je signal-slotem qt, a że Q_OBJECT się z singletone gryzie to jeszcze musiał to być member tworzony w singletonie, także no, strasznie skomplikowane i na pewno możnaby ten same efekt mieć prościej... ale działa,
  • Odpowiedz