Schnäppchen: Der C++ Programmierer

Also.....ist der Einband nun wichtig, oder der Inhalt ?
Ich fand es schon interessant, weil auch für den Preis ein PDF dabei ist. Perfekte Suche am PC. :wink:

skorpi080:
Bei Amazon für 16€ zu bekommen, 10 Stk noch da.

Bei terrashop für 12,99

Gruß Tommy

Auf jeden Fall ist der Inhalt und dann vor allem die PDF Version sinnvoll. Das Geld ist es auf jeden Fall deutlich wert!

Auch die 40€ war es wert.

Gruß Tommy

Habs mir auch geholt, aber im Moment ist mir noch nicht langweilig. Habe noch bischen Umzugsstress. Ein Griff und schon geht die Sucherei los. Das Buch wird einige Zeit in Anspruch nehmen. Aber sicher eine gute Investition. Habe es auch gleich über den Link von Combie geschossen. Bei dem Preis muss man es ja holen.

Franz

Hier mal ein "Kompatibilitätstrick" zum Buch und zu sonstigen Arduino fremden Quellen.
Quasi ein cout Emulator für Arme.

#include <Streaming.h> // das findest du schon ...
namespace std {Stream &cout {Serial};}

void setup() 
{
  Serial.begin(9600);
  std::cout << "Start: "<< __FILE__ << endl;
}

void loop() 
{
  using namespace std;
  cout << "Hallo" << endl;
}

Hallo,

vielleicht auch noch eine Erwähnung wert. Beim avr-gcc 7.3.0 den die IDE 1.8.13 mitbringt, kann man C++17 aktivieren um das Buch voll nutzen zu können. Stichwort platform.local.txt

Doc_Arduino:
Beim avr-gcc 7.3.0 den die IDE 1.8.13 mitbringt,

Ach... beantwortet das : Array von SD Karte beschreiben - #21 by my_xy_projekt - Deutsch - Arduino Forum ???

Hallo,

bezogen auf #20 im Link?
Es könnte sein das bei der Standard IDE Einstellung vielleicht diese Warnung unterdrückt wird. Würde ich nicht gut heißen. Ist nur eine Vermutung.
Solche ISO C++ forbids Warnungen sollte man generell ernst nehmen.
Meine aktuelle IDE warnt übrigens davor.

Abhilfe schafft ein zusätzliches const. Zumindestens beim kompilieren.

size_t readField(File* file, char* str, size_t size, const char* delim) {

Nebeninfo. Verwechsel bitte nicht die gcc Versionen mit den C++ Versionen. :slight_smile:
Ich weiß das ist manchmal nicht ganz einfach. Die gcc Version steht derzeit bei 10 und ist durchnummeriert.
Die C++ Version überspringt Nummern, weil das Erscheinungsjahr/Planjahr genommen wird.
Top aktuell ist C++20 und die kommende Version lautet C++23.
Für C++20 benötigt man die aktuelle gcc 10 Version.
Wer zum Bsp. den Datentyp "auto" nutzen möchte benötigt mindestens C++14.
Funktioniert wie gesagt mit avr-gcc 7.3.0
Warum arduino.cc die IDE so konservativ mit C++11 voreinstellt weiß ich nicht.
C++14 könnten sie locker voreinstellen. C++17 eigentlich auch.
Wenn doch paar Features fehlen sollten wird sich der Compiler schon melden.
Okay ein Grund fällt mir ein. Der Compiler wird auch immer strenger mit Warnungen etc. Vielleicht ist das für Programmierbeginner nicht gewollt.

Man sollte in der IDE generell alle Warnungen einschalten wenn man erste Erfahrungen gesammelt hat. Sonst wundert man sich später warum der Code woanders nicht kompiliert.

In der IDE alle Ausgaben einschalten.
Datei > Voreinstellungen >

  • Ausführliche Ausgabe während > beide Haken rein
  • Compilerwarnungen > "ALLE"
    Zeilennummern und Codefaltung sind auch hilfreich.
    Speichern beim Überprüfen und Hochladen würde ich abschalten.

Doc_Arduino:
Speichern beim Überprüfen und Hochladen würde ich abschalten.

Das sehe ich anders. An der Stelle wird bei mir dadurch eine Kopie mit Zeitstempel im Dateinamen erzeigt, damit man immer wieder auf einen alten Stand zurück kann. Gut, man muss auch mal wieder aufräumen :wink:

Gruß Tommy

Hallo,

bei mir wird genau der offene Sketch überschrieben beim speichern. Es werden keine neuen Dateien/Ordner erzeugt.
Habe das soeben mit Haken frisch getestet.
Hast Du Linux oder Windows? Ich habe Windows 10. Mit Linux könnte ich das auch testen wenn ich möchte. :wink:

Ich habe mir ein eigenes System mit Powershell unter Win genaut, das beim Ändern der Datei (Abspeichern) eine Sicherung mit name.ino_yyyymmddhh(24)miss erzeugt.
Wenn Interesse besteht, kann ich das gern posten.

Gruß Tommy

Hallo,

na das musste dazu sagen. :wink: Hatte mich schon gewundert. Ich will zwar nicht laufend aufräumen aber ich schau mir das gern an. Mit der Powershell wollte ich mich auch noch irgendwann näher auseinandersetzen wegen Batchdateien.

Vielleicht machste dafür einen eigenen Thread auf und combie verlinkt das in seinem Tricks & Feinheiten Thread.
Oder auch hier, wie du willst.

Tommy56:
Ich habe mir ein eigenes System mit Powershell unter Win genaut, das beim Ändern der Datei (Abspeichern) eine Sicherung mit name.ino_yyyymmddhh(24)miss erzeugt.
Wenn Interesse besteht, kann ich das gern posten.

Gruß Tommy

Also von mir besteht Interesse.
(Um das hier nicht allzu sehr off topic abdriften zu lassen vielleich in einem eigenen Thread). :slight_smile:

Übrigens: Ich hab' mir ja das Buch im Dezember gekauft. Leider habe ich bisher aber nicht mehr als etwa 100 Seiten gelesen (es gibt viel anderes zu tun). Ich finde es ist sehr angenehm zu lesen, aber zu einer ausführlicheren "Rezension" fühle ich mich wegen meiner bisher geringen "Eintauchtiefe" noch nicht befähigt. :slight_smile:
Nehme mir aber vor das bei Gelegenheit nachzuholen.

Ach den einen Halb-OT-Beitrag verkraftet der Thread auch noch.

Das Powershell-Script (FSWatcher.ps1):

# steht im übergeordneten source-Verzeichnis (also im <Sketchbook>)
$folder = Get-Location
$filter = '*.???'  # .ino, .cpp
$filter1 = '*.?'   # .h .c

# checkt Änderungen an Dateien (beim Speichern)
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
$fsw1 = New-Object IO.FileSystemWatcher $folder, $filter1 -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}

# Event registrieren
Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
# Zeitstempel
$timeStamp = Get-Date -format _yyyyMMddHHmmss 
$fileName = $Event.SourceEventArgs.FullPath
# neuen Name bilden
$toName = $fileName+$timestamp
# Meldung schreiben
Write-Host "von $fileName nach $toName"
# Kopieren
Copy-Item -Path $fileName -Destination $toName
}

Register-ObjectEvent $fsw1 Changed -SourceIdentifier FileChanged1 -Action {
$fileName = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$timeStamp = Get-Date -format _yyyyMMddHHmmss
$toName = $fileName+$timestamp
Write-Host "von $fileName nach $toName"
Copy-Item -Path $fileName -Destination $toName
}

Damit man die Sicherheitseinstellungen umschiffen kann und das PS1-Script ausführen kann eine Batch-Datei (FSWatcher.cmd). Diese einmalig vor der Arbeit mit der IDE aufrufen (automatisches Speichern -> ein):

rem damit ps1 ausgeführt werden kann -File anpassen 
powershell -ExecutionPolicy Unrestricted /noexit -File ./FSWatcher.ps1

Gruß Tommy

Vielen Dank!

Ich habe das Buch bestellt.

Ich habe schon ein anderes Buch der Serie "Lernen und professionell anwenden" angeschaut und es schein sehr didaktisch, verständlich und mit Übungen (mit Lösungen) sein...also nicht nur das "Stoff abladen". Die Sprache ist relativ anfänger- und ausländer-verständlich (auf seinem Level).
Ja... ca 1000 Seiten - ist eine Menge, das Buch finde ich eher ausführlich und Themenübergreifend als kompakt - das ist schon Zeil- und Geschmacksabhängig.

Also wenn schon ein Buch - dann das soll eine gute Option sein. Insbesondere für ca. 16 Euro incl. Lieferung (statt 40 Euro) für ziemlich frische vorletzte Ausgabe.

Dann bin ich ja mal gespannt, ob dir das gefällt!
Ich wünsche es dir.

Ich geb hier auch mal meinen Senf dazu.
Habe den 1000-Seiten-Schmöker auch gekauft (fester Einband, kein pdf soweit ich weiß) und neugierig angefangen zu lesen.
Es gab dann irgendwann einen Punkt, über den bin ich nicht hinweggekommen. Ich hab's einfach nicht verstanden, da hilft auch 10 mal lesen nichts.
Aber es gibt ja auch noch das "Vorgängermodell", Titel hab ich gerade nicht greifbar. Sinngemäß "Für Einsteiger", war auch beim dicken Schmöker verlinkt.
Aber auch hier das gleiche Spiel: von einer Seite zur nächsten fehlt die Brücke.

Ich fand - und finde - das sehr frustrierend, liegt aber sicher auch an meiner Erwartungshaltung. Neue Begriffe gehören erklärt, Democode auseinandergenommen etc.

Nun bin ich auch nur rein hobbymäßig unterwegs und bisher hat auch bei mir (fast) jedes Projekt einen Abschluß gefunden, die Bücher haben mir dabei aber nicht allzu viel geholfen. Missen möchte ich sie trotzdem nicht, mit Suchmaschine und unserem Forum komme ich aber schneller zum Ziel.

Dabei kann ich auch gut damit leben, die trickreichen Combie-Codes nicht zu verstehen :upside_down_face:
Würde mich nicht stören wenn es anders wäre oder ich gar in der Lage, sowas selbst zu fabrizieren. Dafür ist aber der Leidensdruck nicht hoch genug.

So, worum ging's nochmal? Ach ja, die Bücher - klare Kaufempfehlung. Und nen Textmarker mit dazu für die "Bookmarks".

Bei der Ursprungsversion war das PDF dabei. Im verlinkten Angebot steht auch Extra: E-Book inside.

Gruß Tommy