-
Thread
C-Code optimieren (passt nicht in Attiny2313) :( Gesperrt
lcd_string(",5"); } lcd_string(ausgabe); lcd_data(0xDF); lcd_string("C "); } [/c] macht und ob ein [c] void ausgabe_display_temp( uint8_t zeile, int8_t hv, uint8_t lv) { lcd_setcursor( 0, zeile ); lcd_string( zeile == 1 ? "A " : "I " ); utoa( hv, ausgabe, 10 ); lcd_string( ausgabe ); lcd_string( lv == 128 ? ",0" : ",5" ); lcd_data( 0xDF ); lcd_string( "C " ); } [/c] signifikant kürzeren
-
Thread
Zeichenkette in C
Hallo, mal eine C Frage: Wenn ich das Zeichenkettenarray char string[] = "ein Text"; nutze, wie sieht das Array dann in Wahrheit aus? ist es ein string[7], d.h. die Elemente 0 bis 6 mit den Werten {e,i
Zeichenkette schrieb im Beitrag #3988504: > oder ist es in Wahrheit ein string[8] mit den Werten {e,i,n, > ,T,e,x,t,'\0'} Letzteres, da in C jede Stringkonstante (Text, der in Anführungszeichen eingeschlossen ist) per Definition nullterminiert ist.
-
Thread
c# <-> Serielle Schnittstelle
kriegt man das nächste Häppchen was man abspeichern/verarbeiten kann. (Bitte sehe mein Beispiel) [c] private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; string indata = sp.ReadExisting();
#5624332: >> Kein wunder das so mancher Aufzug stehen bleibt :D > > Aber nicht weil ich etwas in C programmiere. > >> Dein Code ist kacke. > Zeig mir bitte deinen Besseren. ich wäre dankbar. [code] static void Main(string[] args){ using (var myPort = new SerialPort("/dev/ttyACM0", 115200
-
Thread
Unterschied JAVA & C++
trimmen, in Tokens zerlegen usw, aber die Funktionen dort > erwarten ja einen char * , aber keinen String? Die C++ Standard Library hat keine trim/zerlege Funktion. Vielleicht meinst du eine C library, die kann natürlich keine C++ Strings. Thomas W. schrieb im Beitrag #4218488: > Und weil Java so
Andreas R. schrieb im Beitrag #4218465: > Was mir jetzt nach längerem Java-Coden und C++ - Abstinenz aufgefallen > ist: C++ hat nun all die schönen Datenstrukturen von Java bekommen. Also > von String bis Vector usw. Da muß deine Abstinenz aber sehr lang gewesen sein, denn C++ wurde
-
Thread
AT90USB162 Endpoint Interrupts funktionieren nicht
diverse Typen wie String oder StringBuilder, aber in C auf einem AVR hab ich sowas noch nie benutzt.
) + sizeof(USB_VENDOR_NAME) - sizeof(wchar_t), .bDescriptorType = STRING_DESC, .bString = USB_VENDOR_NAME }; [/c] mit USB_VENDOR_NAME [c] #define URACOLI_USB_VENDOR_NAME L"URACOLI" [/c] Beim AVR-GCC sind wide strings standardmäßig 16 bit breit, daher
-
Thread
[c#] String zu Fließkommazahl
X = (float)Convert.ToDouble(Werte[0]); //oder X = float.Parse(Werte[0]); [/c] Jedes mal erhalte ich aber falsche Ergebnisse, da bei der Konvertierung das Komma nicht berücksichtigt wird: aus 0,921 wird 921 aus 1,222 wird 1222 Jetzt meine Frage: Wie kann ich den String
Komma und keinen Punkt eingibt, weil das in seinem Kulturkreis Konvention ist. Im Speziellen (in C#) wären das z.B. Double.Parse(string s,NumberStyles style, IFormatProvider provider, out double result) oder auch Convert.ToDouble(Object value,IFormatProvider provider). Der Parameter provider kann
-
Thread
C# String splitten
Hallo, kann mir einer ein einfaches Beispiel geben, wie ich in C# einen String splitte. Der String liegt wie folgt vor string dataReceived = "00,01,02,ff"; In den 4 Felder sind 4 Byte Werte formatiert als Hex. Ich muss nun aus dataReceived byte val0
Mit string.Split() erst die Werte extrahieren und dann parsen: [c] string input = "00,01,02,ff"; IEnumerable<string> byteStrings = input.Split(','); IEnumerable<byte> byteValues = byteStrings.Select(b =
-
Thread
C# String teilen
Daten schauen so aus: 45;32;31;56;98; Das sind Werte von 5 Sensoren. Nun möcht ich den String in C# aufsplitten, und zwar beim Zeichen ";". Wie funktioniert das? Das Microsoft Bsp hab ich mir zwar angesehen, aber damit geht es nicht.
In C# heißt die Methode Split() und ist ein Member der Klasse System.String. In Deinem Fall könnte der Aufruf wie folgt aussehen: [c] string data = "45;32;31;56;98;"; string[] items = data.Split( new
-
Thread
string terminieren in C
Hallo, in meinem string steht immer "\011parameter1\011", obwohl ich eigentlich nur "parameter1" reinschreibe, wie kann ich den string terminieren, damit ich nur "parameter1" stehen habe. danke
-
Thread
C# Datagridview
Hallo allerseits, ich habe ein kleines Problem bei C# und hoffe das mir hier jemand helfen kann. Es geht um die DatagridView option bei C# im Windows Form Modus. Ich habe ein String. Dieser heißt Data2 und hat folgendes Format/Aussehen: 122345 Hersteller
} [/c] Verwendung [c] private List<DataEntry> _daten; private const int MinLineLength = 10; private const string DatafilePath = @"d:\_temp\data.txt"; ... // Vorsicht, Exception möglich (Dateifehler
-
Thread
lwip string auswerten
"test" für bla123 [/c] Bei POST requests könnte man mit FormData arbeiten, aber bei GET muss man den Query String selbst kodieren. Folgende Funktion nimmt einem die Arbeit ab: [c] function toQueryString( p ){ var
zurück, das jedes Zeichen einzeln enthält. Man kann diesen wert z.B. in eine Variable speichern: [c] var characters = "12".split(''); [/c] Der String kann auch von einer Variable oder sonst wo kommen: [c] var string = "12"; // Der String "12" wird in der Variable string gespeichert var characters
-
Thread
String übergenen
**arg** Edit-Zeit zu kurz! so gehts: [c] // header: class String { public: String(); ~String(); void SetNewName (const char *c = ""); private: char *newnamen; }; // Cpp-file: String::String() { // Konstruktor } String::~String() { // Destruktor } void String::SetNewName (const char *c = "") { newnamen = new char[strlen(c) + 1]; strcpy(newnamen,c); } [/c] Man beachte hier auch das richtige CamelCase
-
Thread
c++ wann Objekt auf Heap
Heap anlagen. Was heißt das nun? Viele Objekte repräsentieren nur "Werte", z.B., ein int, ein String, eine Matrix. Werte können beliebig kopiert werden und man kann die Kopien unabhängig voneinander verändern. Der Code wird also üblicherweise so aussehen: [c] int dim = 5; std::string text = "abc"; Matrix m(dim); [/c] aber nie so: [c] int *dim = new int(5); std::string *text = new std::string("abc"); Matrix *m = new Matrix(*dim); [/c] Objekte besitzen eine "Identität", wenn es keinen Sinn macht, die Objekte
-
Thread
C - Funktion von Strlen verstehen
zusammengesucht (für 32-Bittler): gnu libc strlen() https://github.com/lattera/glibc/blob/master/string/strlen.c freebsd libc strlen() http://svnweb.freebsd.org/base/head/lib/libc/string/strlen.c?view=markup ulibc libc strlen() http://git.uclibc.org/uClibc/tree/libc/string/strlen.c ulibc libc
unter Windows die glibc-Variante ein. z.B. hier: https://github.com/zerovm/glibc/blob/master/string/strlen.c
-
Thread
c++ chat programmieren
code bis jetzt: #include <windows.h> #include <conio.h> #include <iostream> #include <string> int main() { using namespace std; string fehler; int port; string erfolgreich; string falsch; string viels; //ip adresse char hostname[255]; char *szIPAddress; WORD
[c]#include <windows.h> #include <conio.h> #include <iostream> #include <string> int main() { using namespace std; string fehler; int port; string erfolgreich; string falsch;
-
Thread
GPS-String zerlegen mit C für AVR
Hallo, als blutiger Anfänger in Sachen 'C' mit AVR versuche ich den String einer GPS-Maus zu lesen. Das klappt eigentlich schon gut, nun will ich ihn in seine Bestandteile zerlegen. Ich habe ein paar Beispiele mittels der Suche gefunden, fast
Na ja, so einen "strtok Ersatz" hat man aber auch schnell selber gemacht. ungetestet: [C] char * part; char * pLoop; char String[] = "a,b,,c,d"; uint8_t finished = false; pLoop = String; while( !finished ) { // pLoop zeigt auf den Anfang des nächsten Eintrags
-
Thread
C-Code für Datenempfang mit USART
Ein Wort noch in Code strategischer Sache. Sowas [c] if(String_Counter<UART_MAXSTRLEN&&String_Complete==0) [/c] ist schlecht. Das ist eine Wurscht aus Buchstaben, bei der man erst mal 15 Sekunden suchen muss, wo ein Wort aufhört und wo das andere anfängt
schon schwierig genug. Da muss man dem Leser nicht auch noch Prügel zwischen die Beine werfen [c] if( String_Counter < UART_MAXSTRLEN && String_Complete == 0 ) [/c] viel besser zu lesen! Und achte auf deine Einrückungen! Konsistenz ist wichtig. Wenn du nach jeder öffnenden { um
-
Thread
µC reagiert auf falsche Antwort
eigentlich funktioniert bzw. funktionieren sollte. Man erkennt das zb hier ziemlich deutlich [C] } while (Empfangsdaten == 'OK'); [/C] in dieser simpel anmutenden Zeile sind 3 schwere Fehler "versteckt". Für jemanden, der mit Strings in C umgehen kann, sind sie jedoch nicht versteckt. Für
// den String rausgeben // falls in der Zwischenzeit was reinkommt, dann einfach mal von // der UART abholen Senden ("a"); if( ri_u0c1 ) Empfangen(); Senden ("t"); if( ri_u0c1 ) Empfangen
-
Thread
Formular auslesen in C
Francesco. Wenn du mir nicht glaubst, dann glaub wenigstens dem Mann der deine C-Library geschrieben hat. > Nein, bis es auf ein richtiges NULL trifft. Und wie bitte soll strcat das unterscheiden können? Im String ist ein '\0' Zeichen drinnen. Und das ist für strcat das Zeichen
. In diese Kategorie fällt auch eine berühmte 'Functiona non grata': Was ist falsch an der C Standard-Funktion gets()? Antwort: gets() hat keine Möglichkeit sich gegen Bufferoverflow zu schützen. Immer fgets benutzen! * Die Funktion allokiert genügend Speicher für den String und
-
Thread
[C] Textdatei in String speichern
} fclose(tf);[/code] Also muss ich mir nur noch einmal anschauen, wie man einen String dynamisch vergrößern kann. Habe sowas seit Ebigkeiten nicht mehr gemacht. Danke ann alle. MfG
. if(ptr==NULL) exit(2); [/c] Lösung: ptr_tmp und nach dem Test auf 0 wieder ptr zuweisen.
-
Thread
Grundlegende Frage zu Strings in C
Hallo! Ich hab da mal eine grundlegende Frage: Also in C werden ja Strings mit \0 abgeschlossen. Muss ich, wenn ich jetzt z.B. "Hallo" in einen String speichern will, dann den String mit: > char feld[4]; oder > char feld[5]; oder > char feld
Übersetzter. Stimmt alles. Aber wir reden hier nicht von Raketentechnik. Wir reden von einem Kapitel 'Strings in C'
-
Thread
[c] atoi mit 2d-Array bei uC
= `\0` setzt (`\0` ist das Sentinel, was bei NTBS erwartet wird). Besser wäre natürlich ein [c] std::array<std::array<char, 8>, 10> ucInputData; [/c] und ein [c] template<auto N> int atoi(const std::array<char, N>&); [/c] Ansonsten hat atoi() das große Problem, das atoi() `0` liefert
> Umwandlung stoppt. Stimmt nicht ganz: - error wir benutzt, wenn ein range-error auftritt (C99 konform) - bei anderen Fehlern wie nach wie vor `0` zurück gegeben. Nur bei nicht C99-konformen Implementierungen wird errno == EINVAL gesetzt: https://en.cppreference.com/w/c/string/byte/strtol
-
Thread
Strukturen mit memset initialisieren (C/C++)
sugerriert, das Zielobjekt sei ein String.
einsDavon; > memset( &einsDavon, (int)'\0', sizeof(myStruct) ); schöner wäre auf jeden Fall: [c] myStruct einsDavon; memset( &einsDavon, (int)'\0', sizeof(einsDavon) ); // ^^^^^^^^^ [/c] bzw: [c] myStruct* einPointerDavon; // ... memset( einsDavon
-
Thread
C/C++: Frage zu (un)signed overflow
Ich habe da eine Frage zum Thema Overflow von signed/unsigned Datentypen. Folgendes Beispiel: [c] #include <iostream> #include <string> #include <cstdint> using namespace std; int main() { string str; cin >> str; size_t len = str.length(); uint16_t i; for
mit einem String, der laenger ist als der Schleifenzaehler i fassen kann (in diesem Beispiel mit einem 70.000 Byte langen String), so ergibt sich eine Endlosschleife. Soweit so logisch und auch erwartet. Aendere
-
Thread
Hilfe in C++
C++ sollte dazu die Klasse std::string kennen (bin mir aber nicht sicher, ob die Teil des C++-Standards ist - auf jeden Fall ist sie in der STL) Alternativ müsstest Du Dich mit malloc / free bzw. deren
buffer als Pointer auf diesen Speicher an. Dynamischen Speicher bekommst du bzw. gibst du frei in C mit malloc/free und in C++ mit dem bereits erwähnten new/delete bzw. über die entsprechenden Klassen wie das bereits erwähnte std::string
-
Thread
C Einführung: strncpy
return 0; } [/c] Output: myString: My Name is Gerd tempName: My Name i tempName2: My Name iMy Name i myString: strlen= 15, sizeof= 16 tempName: strlen= 9, sizeof= 10 tempName2: strlen= 19, sizeof= 10 Process
initialisiert hast. Alternativ kann man die Ziele auch nach strncpy() sicherheitshalber terminieren: [c] strncpy(tempName,myString,sizeof(tempName)-1); strncpy(tempName2,myString,sizeof(tempName2)-1); tempName[sizeof(tempName)-1] = '\0'; tempName2[sizeof(tempName2)-1] = '\0'; [/c]
-
Thread
C oder C++ lernen?
als er es in C tun würde. Persönlich rate ich auch zuerst zu C++ zu greifen. Alleine die Zeit, die man sich beim Lernen durch einen funktionierenden String-Datentyp spart, ist in Algorithmen-Lernen wesentlich besser
heute in C programmieren wuerde. > Persönlich rate ich auch zuerst zu C++ zu greifen. Alleine die Zeit, die > man sich beim Lernen durch einen funktionierenden String-Datentyp spart, > ist in Algorithmen-Lernen
-
Thread
Linux C Read von ttys0
Lars schrieb im Beitrag #3186012: > Ist nicht ein Char ein String? Nein das ist ein Array of Bytes, In C sind Strins mit \0 terminert. Dann sind es Strings und können mit den Funktionen aus der string.h behandelt werden. Sonst ist das nur irgendwelcher Datenkram
Ok danke für die Tips. Aber ein Problem habe ich immer noch..... Wenn ich z.b das hier: [c] char string[] = "Die schoenen Dinge im Leben sind umsonst."; int laenge = strlen(string); printf("Laenge: %d Zeichen\n", laenge); [/c] In meinen Code einfüge bleibt da das Programm stehn
-
Thread
SerialPort Variablen C#
]; for (int i = 0; i < splitStrings.Length; i++) { results[i] = Convert.ToDouble(splitStrings[i]); } [/c]
weißt du, das es sich bei diesem Wert um die Luftfeuchte handelt. > Wie sollte das jetzt aber in C# aussehen? Hast du schon eine Zeile komplett in einem String? Das ist dein erster Anlaufpunkt: Eine Zeile (egal was drinnen steht) in einem String > Bin in C# ein absoluter Anfänger. Dann
-
Thread
MD5 Verschlüsselung in C Gesperrt
Ich versteh' ehrlich nicht, was denn daran nun so schwer ist ... [c] #include <sys/types.h> #include <openssl/md5.h> #include <stdio.h> #include <string.h> #define STRING "The quick brown fox jumps over the lazy dog.\n" int main(void) { MD5_CTX ctx; unsigned char digest[16]; int i; MD5_Init(&ctx); MD5_Update(&ctx, STRING, strlen(STRING)); MD5_Final(digest, &ctx); for (i = 0; i < 16; i++) printf("%02x", digest[i]); putchar('\n'); return 0; } [/c] (Das bezieht sich auf die OpenSSL-Implementierung
-
Thread
C, Zeiger und Array
ich so auf > der Leitung stehe! Gehen wir das Programm mal durch. main beginnt. Durch [C] char *mld_von_marie = "Nicht anrufen"; [/C] wird ein String erzeugt und in einer Variablen namens mld_von_marie wird die Startadresse des Strings eingetragen [code] mld_von_marie +--
mld_von_marie mitgegeben. Der WErt von mld_von_marie, das ist aber nichts anderes als die Startadresse des Strings im Speicher. Die Funktion kriegt also in der Zeichnung nix anderes, als die Angabe, wo der Zeiger in der ZEichnung hinzeigt .... [C] void anrufen(char *mld) [/C] .... und dies Funktion legt
-
Thread
C uint16_t zu char[] ohne malloc
wie ein ordinäres [c] strcpy(Number_as_String, Pointer_pointing_to_the_NumberString); [/c] ?
hier eigentlich? Ich möchte die C-Strings (also keine Strings sondern Char-Arrays) "A1", "A2", "B1" (samt den Anführungszeichen) kreieren und dazu mache ich nun sowas: [c] /*Zahl als String*/ char Number_as_String[6]{};
-
Thread
WinForms C# System.IO.Ports
sender, System.IO.Ports.SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; string indata = sp.ReadExisting(); this.Invoke((MethodInvoker)delegate() { rtb_RecvData.Text += indata; }); } [/c]
Empfang über einen RecieveHandler realisiert. Damit bekomme ich nun mal die empfangenen Daten. [c] private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; string rxdata = sp.ReadExisting(); StringBuilder myBuilder
-
Thread
Konvertieren in C#
So ich habe es hinbekommen, die Lösong: string bin="10001"; string hex=Convert.ToString(Convert.ToInt32(bin,2),16)
c-hater schrieb im Beitrag #4437228: > Nikolaus schrieb im Beitrag #4436755: > >> So ich habe es hinbekommen, die Lösong: >> >> string bin="10001"; >> string hex=Convert.ToString(Convert.ToInt32
-
Thread
vb to c convertieren
Ich habe jetzt folgendes ich kriege zwar einen string zurück muss aber nur das erste zeichen daraus auswerten. vb: If Hex$(Asc(antwort)) = "55" Then List1.AddItem "8xC166 µC gefunden!" wie kann ich es den in c realisieren? ich habe folgendes
( ToNumber( String[0] ) << 4 ) | ToNumber( String[1] ); } [/C] und wird dann so verwendet [C] int main() { char Test[] = "HalloAF"; unsigned char Number; Number = ToHex( &Test[5] ); } [/C] Was
-
Thread
C befehle für anfänger
Unicode löst man eleganter. >was ist denn wenn " " in der Mitte sitzt? Dann ist das total egal. C-Strings hören mit nem Nullbyte auf. Findest Du das opt. gelöst? Der Code da war falsch, ansonsten löst dein BASIC das auch nicht anders.
libc/manual/html_node/Extended-Char-Intro.html Die C-Bibliothek bietet dazu natürlich sämtliche String- und Zeichenfunktionen einmal für ASCII (strlen...) und einmal für Breitzeichen an (wcslen). Beim Lesen und Schreiben gilt gleiches (fgets... und fwgets
-
Thread
Delegate Problem C#
Hallo Freunde, habe ein Problem bei dem ich nicht weiter weiß! Leider sind meine C# Kenntnis sehr bescheiden. zu meinem Problem [c]private delegate void test(string[] T); private void aktualisiere(string[] C) { for (int i = 0; i > 13; i++)
So habe ich es mit den Array gelöst [c] private delegate void test(string[] T); private void aktualisiere(string[] C) { List<TextBox> tbList = new List<TextBox>(); tbList.Add(textBox0);
-
Thread
C Problem mit Umwandlung
ASCII-Zeichen umwandelt. Ein kleines Beispiel: char buf[4]; bin2ascii8(1, buf, 1); // String "1" bin2ascii8(1, buf, 2); // String "01" bin2ascii8(199, buf, 3); // String "199" Gruß Fiffi
, 10); -> Konvertiert Wert 137 in String "137"
-
Thread
Hex in dezimal in c
versuche einmal zu helfen. Ich weiß zwar auch nicht was du willst, aber ich denke einmal, dass du einen String hast und mit dem rechnen musst. Bei meiner Handy Fernsteuerung ist das auch so. Ich bekomme als String Hex Zahlen und muss die interpretieren. Ich mache das wie folgt: [c] uint8_t str2int(char data){ data -= '0'; if (data>9) data-= 7; return data; } [/c] Um nun z. B. einen String pdu="9B" in eine Zahl zu wandeln, schreibe ich: [c] uint8_t tmp; tmp = str2int(pdu[0])*16 + str2int(pdu[1]); [/c] Das ganze kann man natürlich auch mit Oktal- oder
-
Thread
Es erscheint nichts auf dem Seriellen Monitor?
Schon mal ein [c] Serial.println(preferences.getString("roomname_long", "")); [/c] probiert?
Zeile 14 und 15 änderst du in [c] Serial.println(preferences.getString("string_1", "%")); Serial.println(preferences.getString("string_2", "%")); [/c] Wenn da ein % steht, dann war der Wert vorher nicht da. Testing T. schrieb
-
Thread
String programmieren in c#
Dann kauf dir ein C# Buch oder such dir wenigstens ein Online C# Tutorial. Jedes Objekt in C# unterstützt eine Methode namens ToString(). Auch ein int ist ein Objekt. Deine Schlussfolgerung? > Ich bin noch ein Anfänger was das C-programmieren angeht. Und einige dich mit dir selber, welche Programmiersprache du eigentlich benutzt. C# oder C.
-
Thread
problem mit c strings
uint16_t j; uint16_t k; char ic[] = "abcd"; char ic2[] = "dcba"; unsigned char my_string[]="123"; //*************** the global init init(); lcd_setadress(0,0); //my_string[40]="Hallo"; //strcpy(my_string, "test"); //lcd_stringr(my_string); //lcd_writechar
@echo " " #the object targets (% means all) (depend on the source code) #this compiles the *.c --> *.o (only those in OBJ-list) ${OBJ}: %.o: ${SRCDIR}/%.c @echo "---COMPILER----------------------------------------------------------" ${COMPILE} -o ${OBJDIR}/$@ ${SRCDIR}/$*.c @echo "--
-
Thread
Java: Übergabeparameter wie in C++ beeinflussbar?
UR-Schmitt schrieb im Beitrag #2831194: > Das ist doch eigentlich nur die Besonderheit daß String (und auch > Integer wie ich gerade gelernt habe) immutable sind Es gibt einfach nur keine Möglichkeit (wie in C/C++) eine *Speicherstelle* zu modifizieren, also hat ein Aufrufer, welcher ein Objekt
im Beitrag #2831204: > UR-Schmitt schrieb: >> Das ist doch eigentlich nur die Besonderheit daß String (und auch >> Integer wie ich gerade gelernt habe) immutable sind > > Es gibt einfach nur keine Möglichkeit (wie in C/C++) eine > Speicherstelle zu modifizieren, also hat ein Aufrufer, welcher
-
Thread
String zurücksetzen
danke. "Die Fehlende 0 am Ende eines Strings ist eines der Speicherfehler in C." Wird also als Fehler gewertet. Welche gibt es denn noch ?
Dereferenzieren von NULL-Zeigern. Generelle häufige Fehler: - Keinen Platz für den 0-Terminator in C-Strings lassen. - Vergleichen von C-Strings mit ==. - Vergessen von break in switch. - char- und String-Literale verwechseln. - Off-by-one-Fehler. - Unbeabsichtiges Semikolon nach Schleifenkopf.
-
Thread
Feedback zum Artikel "Plattformunabhängige Programmierung in C"
being treated as errors [/pre] Übrigens optimiert GCC mit Optimierung bei der memcpy-Version [c] #include <string.h> #include <stdint.h> float fun (uint32_t i) { float f; memcpy (&f, &i, sizeof (f)); return f; } [/c] den memcpy-Ausruf komplett raus. Getestet mit GCC 4.3
deine im Artikel erwähnte Formulierung > " empfiehlt sich die Wandlung in Festkommazahlen oder Strings. " > ansehe, kommt auch ein geübter C-programmierer nicht sofort auf obige > Lösung. Da du aber die Integerproblematik sehr ausführlich behandelt und > mit Beispielen versehen hast, würde ich
-
Thread
Einladung zu einem Test in C
@Gast: >>Was war das? >>char *(*(var[10]))(char *string1, char *string2) Da habe ich auch mein C-Buch gefragt ;) alo ich versuchs mal: ein array "var[10]" (die Klammern sind unnötig, [] geht VOR *) aus: Pointern auf: Funktionen die: zwei Pointern
Ja, so habe ich das sogar ohne C-Buch (aber mit Nachdenken :) gedeutet. Die Namen string1 und string2 haben dabei lediglich dokumentarischen Charakter.
-
Thread
SQL Abfrage in C#
Der ConnectionString geht natürlich auch so: [c] connect = new SqlConnection("Data Source=DBSERVER; Initial Catalog=DATENBANKNAME; Integrated Security=sspi; Connection Timeout=100"); [/c] Gruß
-
Thread
C++ Buchstaben in Variable einlesen
Hy ! Stichwort String ! C++ hat dafür einen eigenen schönen Datentyp. http://www.cplusplus.com/reference/iostream/stringstream/ Ich verwende ganz gern http://www.cplusplus.com/reference/ (ohne jetzt hier Werbung
komplette String entstehen soll. Dann liest du den nächsten String ein und hängst ihn hinten an den "kompletten String" an. Und mit der nächsten Eingabe machst du dasselbe noch einmal. Und so weiter. Es ist durchaus
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
column at line 3 lcd_puts_p(PSTR("String from flash")); } void loop(){} [/c] Oder muss man da noch was ändern?
Der I2C_ErrorCode ist auch ein uint8_t. Ich schätze mal, dass Serial.write() aber einen String haben will bzw. den Parameter als String interpretieren wird. Versuche es mal mit folgenden Loop [c]#include
-
Thread
Visual C++ CRT Linker-Problem?
gleich zu öffnen sind? das einzige was ich im moment sehe ist, dass es irgenwie so gehen sollte: [c] String cName = "\\\\.\\COM"+System::Convert::ToString(Nr); hFile= CreateFile(cName,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); [/c] aber dann hab ich das Problem dass
geht immer > das einzige was ich im moment sehe ist, dass es irgenwie so gehen > sollte: > [c] > String cName = "\\\\.\\COM"+System::Convert::ToString(Nr); > hFile= > CreateFile(cName,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); > [/c] > aber dann hab ich das Problem