<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Projekte]]></title><description><![CDATA[Ihr habt eine Auftragsarbeit zu vergeben? Oder sucht ihr ein kleines Team zur gemeinsamen Realisierung von sinnvollen und schaffbaren Programmierprojekten? Ihr sucht ein paar Beta-Tester für eure fertigen Projekte?]]></description><link>https://www.c-plusplus.net/forum/category/20</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 11:27:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/category/20.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Nov 2004 23:20:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Hinweis an die Poster]]></title><description><![CDATA[lol
]]></description><link>https://www.c-plusplus.net/forum/topic/80984/hinweis-an-die-poster</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/80984/hinweis-an-die-poster</guid><dc:creator><![CDATA[AndreasW]]></dc:creator><pubDate>Tue, 23 Nov 2004 23:20:04 GMT</pubDate></item><item><title><![CDATA[libnetplus]]></title><description><![CDATA[@Tuxist1 sagte in libnetplus:

ist auch 3 clause bsd

Bei mir läuft alles unter MIT... aber nur, weil ich im Vorfeld nicht wirklich Lust hatte, mir ernsthafte Gedanken darüber zu machen.  Und man will natürlich auch nicht ins Gefängnis, nur weil ein User unfähig ist.
Es gibt auch noch noch &quot;weakere&quot; Lizenzen: https://creativecommons.org/publicdomain/zero/1.0/deed.de
]]></description><link>https://www.c-plusplus.net/forum/topic/355482/libnetplus</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355482/libnetplus</guid><dc:creator><![CDATA[Anon-81275]]></dc:creator><pubDate>Mon, 10 Aug 2026 20:02:50 GMT</pubDate></item><item><title><![CDATA[Zähler Auslesen]]></title><description><![CDATA[Moin,
wir haben einen Zähler mit RJ45 bekommen, habe jetzt eine kleine Software geschrieben um die Daten auszulesen und nach MQTT zu exportieren.
Wer Interesse hat hier der Quellcode und MSI Installer:
https://tuxist.de/git/tuxist/zaehler2mqtt
http://files.tuxist.de/files/zaehler2mqtt-1.0.0.msi
Einfach im Browser aufrufen:
http://127.0.0.1:8080
Zählerurl ist bei zum Beispiel:
https://192.168.33.2/json/metering/origin/&lt;zählernummer&gt;/extended
]]></description><link>https://www.c-plusplus.net/forum/topic/355472/zähler-auslesen</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355472/zähler-auslesen</guid><dc:creator><![CDATA[Tuxist1]]></dc:creator><pubDate>Wed, 24 Jun 2026 17:29:59 GMT</pubDate></item><item><title><![CDATA[Boot-loader, Kernel, Konsole, Emulator, OS]]></title><description><![CDATA[https://www.henkessoft.de/OS_Dev/OS_Dev1.htm
So lief das 2009. 
]]></description><link>https://www.c-plusplus.net/forum/topic/355430/boot-loader-kernel-konsole-emulator-os</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355430/boot-loader-kernel-konsole-emulator-os</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Mon, 22 Jun 2026 21:02:41 GMT</pubDate></item><item><title><![CDATA[Blogi simples Blogsystem]]></title><description><![CDATA[@Tuxist1 sagte in Blogi simples Blogsystem:

@SeppJ  Deutsche Glasfaser der Anschluss zickt manchmal ....

Tatsache. Nach ein paar Minuten Warten bekommt man tatsächlich eine Antwort. Manchmal. Da war ich vor meinem letzten Kommentar wohl zu ungeduldig. Aber ich glaube nicht, dass ich die Geduld habe, mir das unter diesen Umständen anzugucken.
]]></description><link>https://www.c-plusplus.net/forum/topic/353838/blogi-simples-blogsystem</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353838/blogi-simples-blogsystem</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 03 Jun 2026 18:32:57 GMT</pubDate></item><item><title><![CDATA[Wie wähle ich den richtigen NEMA-17-Motor für einen elektrischen Fokussierer?]]></title><description><![CDATA[@Barker
Ich würde deine Frage mal im Mikrokontroller-Forum stellen.
https://www.mikrocontroller.net/forum/mikrocontroller-elektronik
]]></description><link>https://www.c-plusplus.net/forum/topic/355451/wie-wähle-ich-den-richtigen-nema-17-motor-für-einen-elektrischen-fokussierer</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355451/wie-wähle-ich-den-richtigen-nema-17-motor-für-einen-elektrischen-fokussierer</guid><dc:creator><![CDATA[Quiche Lorraine]]></dc:creator><pubDate>Fri, 27 Mar 2026 09:21:03 GMT</pubDate></item><item><title><![CDATA[Funktionales Bewusstsein für ein Programm mit lokaler KI]]></title><description><![CDATA[https://github.com/ehenkes/functional-self-model
Technical minimal definition of a self-model in artificial agents. Focuses on functional self-reference, temporal consistency, and responsibility, and explicitly distinguishes a self-model from roles, prompt context, memory alone, and purely linguistic self-descriptions. Includes a set of concrete qualitative tests.
]]></description><link>https://www.c-plusplus.net/forum/topic/355411/funktionales-bewusstsein-für-ein-programm-mit-lokaler-ki</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355411/funktionales-bewusstsein-für-ein-programm-mit-lokaler-ki</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 27 Dec 2025 18:00:42 GMT</pubDate></item><item><title><![CDATA[Bewertungsmanagement-Videosystem (in C++ und Qt programmiert)]]></title><description><![CDATA[@DocShoe sagte in Bewertungsmanagement-Videosystem (in C++ und Qt programmiert):

Was sollen wir mit den o.g. Informationen anfangen?

Nichts... nicht mal ein Name oder eine Verlinkung ist dabei... Wir haben es mit einem Verrückten zu tun. (Oder eine KI dreht durch)
]]></description><link>https://www.c-plusplus.net/forum/topic/355414/bewertungsmanagement-videosystem-in-c-und-qt-programmiert</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355414/bewertungsmanagement-videosystem-in-c-und-qt-programmiert</guid><dc:creator><![CDATA[Lennox]]></dc:creator><pubDate>Wed, 17 Dec 2025 13:30:02 GMT</pubDate></item><item><title><![CDATA[Mein Telegram-Automatisierungs-Projekt #1]]></title><description><![CDATA[Kann ja verstehen, dass du stolz auf deine Leistung bist, aber statt das Forum mit Textwänden vollzuspammen hätte eine kurze Projektvorstellung gereicht. Vllt noch eine Verlinkung auf eine Webseite, wo das ganze Projekt vorgestellt und im Detail erklärt wird, aber das da oben ist, vorsichtig ausgedrückt, fragwürdig. Was beabsichtigst du damit, wo liegt der Erkenntnisgewinn für die Community?
]]></description><link>https://www.c-plusplus.net/forum/topic/355244/mein-telegram-automatisierungs-projekt-1</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355244/mein-telegram-automatisierungs-projekt-1</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 17 Dec 2025 08:25:16 GMT</pubDate></item><item><title><![CDATA[dl-Video-Downloader - Wunschliste]]></title><description><![CDATA[Ich habe mein Programm erweitert:
Benutzung von dl.bin
Das Program dl ist ein Komandozeilenprogramm, mit dem man mehrere Videos von allen möglichen Platformen wie Youtube, Facebook, Rumble, Odysee, etc... runterladen kann. Die Downloads verden nacheinander runtergeladen und Videos mit gleichen Titel oder gleicher URL werden übersprungen um zu vermeiden, daß man ein Videos doppelt runterläd. Dies ist besonders nützlich, wenn man viele Videos/Podcasts runterläd, denn nach einer Weile vergisst man, ob man ein Video schon einmal runtergeladen hat oder nicht. Der Link der Downloads wird lokal gespeichert um doppelte Downloads zu verhindern.
Jeder Downloadbefehl wird in einer Datenbank gespeichert, um später fortfahren zu können. Erst nach Abschluss des Downloads wird der Eintrag des Downloadbefehls aus der Datenbank entfernt. Das bedeutet: Wenn du den Befehl dl startest, um mehrere Videos herunterzuladen, aber den Befehl abbrichst und einen neuen Downloadbefehl startest, werden nach Abschluss des neuen Downloads die vorherigen Videos weiter heruntergeladen.
Ein Video runterladen:
$ dl.bin https://youtube.com?watch=***
Download wird gestartet...
[download] 100% of  988.15KiB in 00:00:01 at 979.07KiB/s
FERTIG!
Wenn der Download abgeschlossen wurde, werden vorherige noch nicht abgeschlossene Aufträge abgearbeitet.
Mehrere Videos runterladen:
$ dl.bin https://youtube.com?watch=*** https://youtube.com?watch=*** https://youtube.com?watch=*** ....
Download wird gestartet...
[download] 100% of  977.21KiB in 00:00:01 at 988.07KiB/s
FERTIG!
Wenn die Downloads abgeschlossen sind, werden die vorherigen noch nicht abgeschlossene Aufträge abgearbeitet.
Ein Video herunterladen und dabei einen Titel definieren(besonders nützlich wenn man einen komplexen hls/m3u8 Link hat, die kein vernünftigen Namen hat):
$ dl.bin &quot;Mein eigener Titel=https://stream.com/82374sdf34sd/v.m3u8&quot;
Download wird gestartet...
[download] 100% of  402.87KiB in 00:00:01 at 279.07KiB/s
FERTIG!
Vollständigerweise kann man auch sowohl den Titel, den aktuellen Downloadlink und die Quelle angeben:
$ dl.bin &quot;Mein eigener Titel=https://stream.com/82374sdf34sd/v.m3u8=https://videoseite.de/quelle&quot;
Download wird gestartet...
[download] 100% of  402.87KiB in 00:00:01 at 279.07KiB/s
FERTIG!
Mit den letzten Downloads weitermachen:
$ dl.bin
Alle Downloads sind schon fertig!
Heruntergeladene Videos in mp3 umwandeln und nach der Konvertierung löschen:
$ dl.bin --audio --delete https://youtube.com?watch=***
[download] 100% of  402.87KiB in 00:00:01 at 279.07KiB/s
FERTIG!
Hilfe anzeigen:
$ dl.bin --help
usage: dl.py [-h] [--verbose] [--exit] [--audio] [--delete] [--db DB] [--user-agent USER_AGENT] [urls ...]
Download videos and manage URLs in a database.
positional arguments:
urls                  Download URLs
options:
-h, --help            show this help message and exit
--verbose             Verbose output
--exit                Exit after finishing current commnd. Do not continue with the old/history entries. This Option will be ignored if no download arguments are provided.
--audio               Convert Downlaod to audio
--delete              Delete original file after converting to audio
--db DB               Path to the SQLite database
--user-agent USER_AGENT
Set user-agent
Wunschliste
eine graphische Oberfläche 

Dieses Programm ist besonders für Menschen nützlich, die viele informative Videos herunterladen, bei denen der visuelle Inhalt keine Rolle spielt, und diese unterwegs anhören möchten, zum Beispiel beim Autofahren oder Spazierengehen. Das Problem ist, daß wenn man man Videos direkt auf dem Handy abspielt, stoppt der Videoplayer meist, sobald der Bildschirm gesperrt wird. Lässt man das Handy hingegen entsperrt und kommt versehentlich an das Display, kann das Video pausieren oder es treten andere unerwünschte Effekte auf; zudem wird unnötig Energie verbraucht. Als MP3-Datei hingegen lässt sich der Bildschirm problemlos sperren, während das Audio im Hintergrund weiter abgespielt wird.
Funktionen:
Doppelte Downloads werden übersprungen
Download Tasks werden gespeichert
Unterstützt über 100 Videoseiten
multiple Profile (Jedes Arbeitsverzeichnis ist ein Profil)
]]></description><link>https://www.c-plusplus.net/forum/topic/355254/dl-video-downloader-wunschliste</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355254/dl-video-downloader-wunschliste</guid><dc:creator><![CDATA[anfri]]></dc:creator><pubDate>Tue, 16 Dec 2025 17:04:32 GMT</pubDate></item><item><title><![CDATA[Künstliche Intelligenz mit Verstand]]></title><description><![CDATA[Moin nochmal....,
Bin am arbeiten eines KI-Projektes, suche jemand der das mit mir zusammen umsetzen möchte.......
Kurze Einleitung hierzu: Es bildet am anfang Verstand und begreift Logiken.
Man kann sich das folgender maßen vorstellen (kleiner Auszug ): Platinen/Boards mit IC'S(Chips mit Logikoperatoren) werden vom Interface angeschrieben, Rückwerte nach jedem Zyklus gespeichert...... Es werden verkettungen gemacht, diese Platinen haben von 4 IC's bis zu 100 IC's auf einer Platine und es werden Pro Three ca. 100-500 Platinen verkoppelt und Werte nach Mustern und zuweisungs Algorithmus definnierte Rückwerte verarbeitet.....
Ich suche jemand der mit mir das Projekt umsetzt. Aufkauft.
Bei Interresse gerne Private anschreiben oder Kommentar.
]]></description><link>https://www.c-plusplus.net/forum/topic/355387/künstliche-intelligenz-mit-verstand</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355387/künstliche-intelligenz-mit-verstand</guid><dc:creator><![CDATA[lukluk]]></dc:creator><pubDate>Thu, 06 Nov 2025 16:16:41 GMT</pubDate></item><item><title><![CDATA[libhtmlpp rc1]]></title><description><![CDATA[

bin wieder am Bug fixen in libhtmlpp danke für das konstruktive Feedback


übrigens die  passende http Bibliothek ist auch auf der Zielgeraden nur die Basisbibliothek libnetplus hat noch zwei große Baustellen SSL-/Quicksupport
https://tuxist.de/git/jan.koester/libhttppp
https://tuxist.de/git/jan.koester/libnetplus


]]></description><link>https://www.c-plusplus.net/forum/topic/355380/libhtmlpp-rc1</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355380/libhtmlpp-rc1</guid><dc:creator><![CDATA[Tuxist1]]></dc:creator><pubDate>Tue, 04 Nov 2025 08:24:31 GMT</pubDate></item><item><title><![CDATA[Suche Programmierer für Spielautomaten C++]]></title><description><![CDATA[Von meiner Seite aus kann das Thema gerne geschlossen werden, damit ich nicht mehr vergeblich angeschrieben werde. Vielen Dank!
]]></description><link>https://www.c-plusplus.net/forum/topic/354390/suche-programmierer-für-spielautomaten-c</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354390/suche-programmierer-für-spielautomaten-c</guid><dc:creator><![CDATA[Rubinsky]]></dc:creator><pubDate>Wed, 30 Apr 2025 11:21:01 GMT</pubDate></item><item><title><![CDATA[AuthDB]]></title><description><![CDATA[Ich glaube er hat seinen Git Server abgestellt, weil ihr ihn zu stark fertig gemacht habt
]]></description><link>https://www.c-plusplus.net/forum/topic/355213/authdb</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355213/authdb</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 13 Mar 2025 17:37:18 GMT</pubDate></item><item><title><![CDATA[Palladium]]></title><description><![CDATA[So man will es nicht glauben der Erste Code kann erzeugt werden! Nicht sinnvolles natürlich!
]]></description><link>https://www.c-plusplus.net/forum/topic/355170/palladium</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355170/palladium</guid><dc:creator><![CDATA[c_new]]></dc:creator><pubDate>Fri, 03 Jan 2025 18:25:29 GMT</pubDate></item><item><title><![CDATA[Cyclone Arcade Spiel (Programmiercode, 3D-Druckdateien, Beschreibung, Anleitung) Download-Link am Ende des Beitrags]]></title><description><![CDATA[Cyclone Arcade Spiel
Im Rahmen einer Projektarbeit an der Hochschule Heilbronn des Studienganges Produktion- und Prozessmanagement haben wir ein altes Arcade Spiel wieder zum Leben erweckt:
Leider kann ich hier im Forum (Neuanmeldung) keine Bilder posten. Falls euch das Projekt interessiert, findet ihr alle erforderlichen Infos ganz unten zum Download bereitgestellt über MediaFire.
Stückliste:
|1|   LCD Modul Display|
|2|LED-Ring|
|3|Arduino NANO V3 |
|4|Druckknopf-Mini-Rundschalter|
|5|Kondensator 18F|
|6|Potentiometer|
|7|Active Alarm Buzzer|
|8|Wippe|
|9|USB 2.0 Kabel|
Der Programmcode verwendet dabei die folgenden Bibliotheken:
#include &lt;Adafruit_NeoPixel.h&gt;
#include &lt;util/atomic.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;
#include &lt;Arduino.h&gt;
#include &lt;EEPROM.h&gt;
Einstellungen
Um die Schwierigkeit des Spiels individuell zu gestalten, können verschiedene Änderungen am Code vorgenommen werden:
Anzahl der LEDs
Die Anzahl der LEDs, welche im Spiel getroffen werden sollen, kann in der CPP-Datei LED-Ring.CPP angepasst werden. Hierzu können beliebig viele LEDs an verschiedenen Positionen des Rings eingefügt werden. Zusätzlich lässt sich die Farbe der LEDs beliebig konfigurieren. Die erforderlichen Änderungen sind in folgendem Code-Abschnitt vorzunehmen:
  m_strip.clear();
  m_strip.setPixelColor((LEDRING_START_NUM - 1), 255, 165, 0);
  m_strip.setPixelColor(LEDRING_START_NUM, 255, 0, 0);
  m_strip.setPixelColor((LEDRING_START_NUM + 1), 255, 165, 0);
  m_strip.setPixelColor(m_currentLed, 0, 255, 0);


Geschwindigkeit der zirkulierenden LED
Die Geschwindigkeit der zirkulierenden LED lässt sich in der config.CPP Datei variieren:
Um die Geschwindigkeit des zirkulierenden LEDs zu ändern, muss der Wert für das Start-Delay angepasst werden. Ein Wert von 30ul entspricht einer Verzögerung von 30 Millisekunden. Durch eine entsprechende Änderung des Wertes kann das Spiel leichter oder auch schwieriger gestaltet werden.
 #define LEDRING_START_DELAY_MS 30ul

Wechseln der Position der zu treffenden LED
Die Anzahl der LEDs, welche im Spiel getroffen werden sollen, kann in der CPP-Datei LED-Ring.CPP verändert werden. Hierzu können beliebig viele LEDs an verschiedenen Positionen des Rings eingefügt werden. Zusätzlich lässt sich die Farbe der LEDs beliebig anpassen.
Eine beispielhafte Änderung der Position würde im Code so aussehen
  m_strip.clear();
  m_strip.setPixelColor((LEDRING_START_NUM - 10), 255, 165, 0);
  m_strip.setPixelColor(LEDRING_START_NUM, 255, 0, 0);
  m_strip.setPixelColor((LEDRING_START_NUM + 10), 255, 165, 0);
  m_strip.setPixelColor(m_currentLed, 0, 255, 0);
}


Anzahl an Leben
Um die Anzahl an Leben zu ändern, kann der Wert in der CPP-Datei config.CPP beliebig festgelegt werden. Standardmäßig sind 3 Leben pro Durchgang eingestellt.
#ifndef PLAYER_TOTLIVES
#define PLAYER_TOTLIVES 3  
#endif


Visuelle Einstellungen
Zusätzlich können auch visuelle Änderungen der LEDs vorgenommen werden. Hierbei kann sowohl die Farbe der LEDs als auch die Helligkeit verändert werden.
Helligkeit
Die Helligkeit kann in der CPP-Datei LEDRing.CPP angepasst werden.
Hierzu ist die folgende Code-Zeile anzupassen:
 m_strip.setBrightness(15) 


Um die Einstellung der Helligkeit zu regulieren, kann die in den Klammern angegebene Zahl auf einen Wert zwischen 1 und 100 eingestellt werden. Hierbei steht der Zahlenwert für die prozentuale Helligkeit der LEDs.
Farbe
Die Farbe der LEDs wird ebenfalls in der CPP-Datei LEDRing.CPP festgelegt. Hierzu sind folgende Code-Zeilen entsprechend der gewünschten Farbe einzustellen.
m_strip.setPixelColor((LEDRING_START_NUM - 1), 255, 165, 0);
m_strip.setPixelColor(LEDRING_START_NUM, 255, 0, 0);
m_strip.setPixelColor((LEDRING_START_NUM + 1), 255, 165, 0);
m_strip.setPixelColor(m_currentLed, 0, 255, 0);


Das Spiel bietet die Möglichkeit, frei nach Fantasie angepasst zu werden und um zusätzliche Funktionen sowie Schwierigkeitsgrade erweitert zu werden. Dabei haben Nachbauende die Freiheit, den Programmcode und die Spielmechaniken nach Belieben zu erweitern und anzupassen.&lt;/b&gt;
Wir wünschen viel Spaß bei der Umsetzung und dem Ausprobieren des Cyclones.
--------------------------------------------------
Informationen zu den Autor*innen:
Im sechsten Semester des Bachelor of Engineering Studienganges Produktion- und Prozessmanagement an der Hochschule Heilbronn gilt es, eine Projektleistung eigenständig umzusetzen. Um unsere elektrotechnischen, CAD- sowie Programmierkenntnisse in der Praxis zu testen, entschieden wir uns im Dreierteam für die Umsetzung des Projektes Cyclone-Arcade Spiel.
Link zum Studiengang:
https://www.hs-heilbronn.de/de/produktion-und-prozessmanagement
Das Projekt bietet mit der Umsetzung einen umfangreichen Einstieg in die Elektrotechnik und die Programmierung des Mikrocontrollers zur Steuerung der einzelnen Bauteile mit der Arduino-IDE, welche auf der Programmiersprache C und C++ beruht.
Der Aufbau beinhaltet viele grundlegende Bauteile. Dies hilft, ein besseres Verständnis zu erlangen, wie ein Produkt von der Idee bis hin zur Produktentstehung umgesetzt wird.
Falls ihr nun Lust habt den Cyclone nachzubauen stehen euch unter folgendem Link sämtliche Dateien zum Download bereit:
Hier findet sich auch nochmal eine genauere Anleitung zur Umsetzung des Cyclones, da ich hier im Forum (als &quot;Neuling&quot;) auf 3 Bilder beschränkt bin.
https://www.mediafire.com/file/kj3cdsh3y15ket0/Cyclone-Dateien.zip/file
]]></description><link>https://www.c-plusplus.net/forum/topic/354921/cyclone-arcade-spiel-programmiercode-3d-druckdateien-beschreibung-anleitung-download-link-am-ende-des-beitrags</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354921/cyclone-arcade-spiel-programmiercode-3d-druckdateien-beschreibung-anleitung-download-link-am-ende-des-beitrags</guid><dc:creator><![CDATA[MaGo_0209]]></dc:creator><pubDate>Mon, 05 Aug 2024 14:10:46 GMT</pubDate></item><item><title><![CDATA[Interpreter für eine kleine Programmiersprache]]></title><description><![CDATA[Hab mir das jetzt auch noch mal angeguckt:


ich benutze für den std-namespace den vollqualifizierten Namen, ohne den std-Namespace zu öffnen. Die fünf Zeichen mehr machen beim Schreiben den Braten nicht fett und man erkennt sofort, dass es etwas aus der STL ist.


übergib' notwendige Parameter nicht als Zeiger, sondern als Referenz. Ich halte mich dabei an folgende Faustregel:

der Parameter ist optional: Übergabe als (const) Zeiger
der Parameter ist notwendig und kann verändert werden: Übergabe als Referenz
der Parameter ist notwendig und darf nicht verändert werden: Übergabe als const-Referenz



benutz' so viel aus der STL wie möglich und vermeide handgeschriebene Schleifen. Die C++ Lösung deiner removeSpaces Funktion könnte so aussehen:


#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;cctype&gt;
#include &lt;iostream&gt;

std::string RemoveSpaces( std::string const&amp; str )
{
   std::string retval;
   auto predicate = []( char ch )
   {
      return !std::isspace( ch );
   };
   std::copy_if( str.begin(), str.end(), std::back_inserter( retval ), predicate );
   return retval;
}

oder in-situ auf der Variable selbst
#include &lt;string&gt;
#include &lt;algorithm&gt;

std::string str = &quot;abc def&quot;;
str.erase( std::remove( str.begin(), str.end(), ' ' ),
           str.end() );


warum legst du deine Variablen überhaupt per new an? Wenn du sie in einem std::unordered_set hältst werden deren Adresse auch nicht ungültig (es sei denn, du löschst das Element aus dem set), du kannst also die Variable als value im set halten und trotzdem mit deren Adressen arbeiten. Habe mir jetzt aber auch nicht so genau angeguckt, was du mit den Adressen so alles anstellst.
vermeide besitzende Rohzeiger und benutz' stattdessen die smart pointer der STL.

Edit:

Generell arbeitest du zu wenig mit Rückgabewerten aus Funktionen. Die freie Variable error  ließe sich komplette entfernen, wenn die Funktion, die sie setzen, den Status statt void zurückgeben. Damit weiß der Aufrufer direkt, ob der Aufruf erfolgreich war oder nicht.
exit() ist in den allerwenigsten Fällen sinnvoll. Stell dir vor, du stellst deine Engine als Bibliothek zur Verfügung und unter bestimmten Umständen wird exit() aufgerufen und das Programm beendet. Das ist kann für böse Überraschungen sorgen, wenn die Scripting-Engine ein kleiner und unwichtiger Teil eines Programms ist, aber plötzlich das Programm beendet.

]]></description><link>https://www.c-plusplus.net/forum/topic/354075/interpreter-für-eine-kleine-programmiersprache</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354075/interpreter-für-eine-kleine-programmiersprache</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 04 May 2023 11:13:28 GMT</pubDate></item><item><title><![CDATA[Map-Software mit Chromium]]></title><description><![CDATA[@morino sagte in Map-Software mit Chromium:

Es wäre eine kleine Revolution für Kommandozeilentools.

Kommandozeilentools haben den Vorteil, dass man sie einfach automatisieren und kombinieren kann. Damit sind sie sehr gut wiederverwendbar, z.B. eben für sowas.
Inwiefern so ein Tool an sich nützlich wäre, kann ich nicht beurteilen. Hört sich für mich nicht verkehrt an, aber ich schätze, es gibt etliche Verwaltungstools, die das schon können.
]]></description><link>https://www.c-plusplus.net/forum/topic/353792/map-software-mit-chromium</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353792/map-software-mit-chromium</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Mon, 06 Feb 2023 19:46:36 GMT</pubDate></item><item><title><![CDATA[on-the-fly Email Programm]]></title><description><![CDATA[Hör bitte auf zu trollen.
]]></description><link>https://www.c-plusplus.net/forum/topic/353822/on-the-fly-email-programm</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353822/on-the-fly-email-programm</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 28 Jan 2023 13:25:40 GMT</pubDate></item><item><title><![CDATA[Brauche Beratung&#x2F;Hilfe zu einem Cockpitsimulator (Flugzeug)]]></title><description><![CDATA[@hustbaer Vielen Dank für die nette Antwort!
]]></description><link>https://www.c-plusplus.net/forum/topic/353672/brauche-beratung-hilfe-zu-einem-cockpitsimulator-flugzeug</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353672/brauche-beratung-hilfe-zu-einem-cockpitsimulator-flugzeug</guid><dc:creator><![CDATA[stefanpc81]]></dc:creator><pubDate>Wed, 23 Nov 2022 11:59:45 GMT</pubDate></item><item><title><![CDATA[Vorstellung: inno.navi - visuelle Ansicht Eurer Projekte]]></title><description><![CDATA[Hallo zusammen,
Ich möchte mich zunächst bei Euch bedanken, dass Ihr Euch Zeit genommen habt es zu lesen &amp; Feedback zu schreiben. 
Unser Produkt ist etwas komplexer und schwierig in 2-3 Sätzen zu erklären.
Deswegen verstehe ich Dein Feedback und Deine Skepsis @Mechanics sehr gut.
Auch das Feedback von @It0101 ist sehr verständlich. Wir überlegen, in weiterer Zukunft, unser gesamtes Tool ggf. im Browser als Github Extension anzubieten. Das wäre dann perfekt integriert.
Jetzt aber die gute Nachricht, wir haben endlich ein Video erstellt, dass unsere Produktidee als gesamtes zeigt:
https://www.youtube.com/watch?v=0AFn0eWrMB8
Ich würde mich freuen, wenn Ihr mir darauf nochmal Feedback geben wollt? Ändert das etwas?
 Was sollten wir tun, damit unser Produkt wirklich gut für Euch wäre?
 Was sollten wir nicht tun, damit unser Produkt gut für Euch wird?
schöne Grüße,
Bernd
]]></description><link>https://www.c-plusplus.net/forum/topic/353325/vorstellung-inno-navi-visuelle-ansicht-eurer-projekte</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353325/vorstellung-inno-navi-visuelle-ansicht-eurer-projekte</guid><dc:creator><![CDATA[Innovirtual]]></dc:creator><pubDate>Sun, 16 Oct 2022 13:46:13 GMT</pubDate></item><item><title><![CDATA[Generic Finder - Linux + Windows Suche und Analysewerkzeug]]></title><description><![CDATA[Update 1.0.0.17.
'Öffnen mit ...' Schnittstelle.
Screenshot Öffnen mit ...pdf2txt
zeigt die volle Integration eines externen Prozesses in den GF.
Man kann sich ja viele tools runterladen, welche wertvolle Dienste in der shell leisten.
pdf2txt ist für mich so ein Kandidat. Über die 'Open with ...' Schnittstelle ist der Output eines Prozesses optional in das aktive Fenster des GF eingebunden.
Das geht mit allen Prozessen, die das &gt; können.
]]></description><link>https://www.c-plusplus.net/forum/topic/353551/generic-finder-linux-windows-suche-und-analysewerkzeug</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353551/generic-finder-linux-windows-suche-und-analysewerkzeug</guid><dc:creator><![CDATA[zerni]]></dc:creator><pubDate>Sat, 01 Oct 2022 14:50:44 GMT</pubDate></item><item><title><![CDATA[Reiseapp programmieren]]></title><description><![CDATA[Ich mache hier zu, bevor es noch dümmer wird.
]]></description><link>https://www.c-plusplus.net/forum/topic/353219/reiseapp-programmieren</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353219/reiseapp-programmieren</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 May 2022 07:20:21 GMT</pubDate></item><item><title><![CDATA[Freizeit&#x2F;Hobby Programmierer für MMORPG Server mit c# opensource Emulator gesucht]]></title><description><![CDATA[@Quiche-Lorraine Wobei in dem Bild &quot;Was die Infrastruktur installierte&quot; dann doch sehr nah an &quot;Was der Kunde wirklich brauchte&quot; ist.
]]></description><link>https://www.c-plusplus.net/forum/topic/353104/freizeit-hobby-programmierer-für-mmorpg-server-mit-c-opensource-emulator-gesucht</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353104/freizeit-hobby-programmierer-für-mmorpg-server-mit-c-opensource-emulator-gesucht</guid><dc:creator><![CDATA[Tyrdal]]></dc:creator><pubDate>Wed, 30 Mar 2022 07:04:31 GMT</pubDate></item><item><title><![CDATA[[Projekt] Asset Importer Library]]></title><description><![CDATA[Ja Ich weis das Thema ist alt, aber wie kann man die API statisch auf MINGW  32 bit erstellen?
]]></description><link>https://www.c-plusplus.net/forum/topic/222550/projekt-asset-importer-library</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/222550/projekt-asset-importer-library</guid><dc:creator><![CDATA[convert]]></dc:creator><pubDate>Tue, 11 Jan 2022 23:20:10 GMT</pubDate></item><item><title><![CDATA[Projektvorstellung: CGIF - GIF-Encoder in C]]></title><description><![CDATA[write ist kein signifikanter Name für eine Funktion, insbesondere nicht in einer Bibliothek, bspw. gibts write schon in POSIX. Bei deinen defines gibts du dir doch auch Mühe, möglichst signifikant zu sein.
static gehört als Scope-Limitierer in Bibliotheken aber nicht ins Main-Modul (standardkonform: Translation Unit). Und das ist definitiv kein &quot;common-practice in C&quot;.
Auch dein Prinzip &quot;alles was nicht passt wird passend gemacht&quot; und dann auch noch per Zeiger-Cast - ist definitiv kein &quot;common-practice in C&quot;. Zeiger-Casts sind (bis auf ganz wenige formelle Ausnahmen) immer sinnfrei und ein Anzeichen dafür, dass der Autor den Überblick über sein Programm verloren hat.
Stack/Heap gibt es gemäß C Standard nicht.
memcpy für struct zu verwenden ist sinnfrei und Blasphemie. (CGIF_FrameConfig)
Die mallocs für struct sind überflüssig, const für diese struct sind in deinem Programm oftmals angebracht.
]]></description><link>https://www.c-plusplus.net/forum/topic/352833/projektvorstellung-cgif-gif-encoder-in-c</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/352833/projektvorstellung-cgif-gif-encoder-in-c</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Thu, 25 Nov 2021 17:14:42 GMT</pubDate></item></channel></rss>