-
Thread
malloc, string größer als reservierter Speicherplatz für string
Hallo Sehe ich das richtig dass wenn es heißen würde: [c] struct ListElem*root; // root = (struct ListElem*) malloc (sizeof(struct ListElem)); // Erzeugung eines neuen Elements und Anhängen an Root(1.4) platz = (char*)malloc(strlen("Michael")+1); strcpy(platz, "Michaelaaaaaaa"); [/c] das dann der reservierte Speicherpletz überschritten würde und irgend ein anderer speicher überschrieben würde?? (Im Anhang ist der komplette Code) Gruß feldi
-
Thread
#define als String "umdefinieren"
"123" (als String!) einsetzen soll? Gibt´s da ne Möglichkeit? Gruß, Dirk.
müsste es ja mindestens > ne Warnung geben. Würde ich auch erwarten. Test: [pre] % cat foo.c char foo[4] = "Hello"; % cc -Os -Wall -Wextra -c foo.c foo.c:1: warning: initializer-string for array of chars is too long [/pre]
-
Thread
Uhrzeit aus RTC auf LCD ausgeben
lcd_init(); i2c_init(); while(1) { i2c_start(0b10100010); i2c_write(0x02); i2c_rep_start(0b10100011); i2c_readNak(); i2c_stop(); char Wert = TWDR; Wert = Wert & 0b01111111; lcd_string_xy
mir vorstellen kann. Wenn du sprintf, wie von PeDa vorgeschlagen benutzen kannst, dann zb so [c] unsigned char BCD; char string[20]; BCD = ((TWDR & 0x70) >> 4) + (TWDR & 0x0F); sprintf( string, "Sekunden: %02u", BCD ); lcd_string_xy(0, 0, string); [/c] Allerdings erhebt sich
-
Thread
Linux Uart Konfiguration
*/ newtio.c_cc[VINTR] = 0; /* Ctrl-c */ newtio.c_cc[VQUIT] = 0; /* Ctrl-\ */ newtio.c_cc[VERASE] = 0; /* del */ newtio.c_cc[VKILL] = 0; /* @ */ newtio.c_cc[VEOF] = 4; /* Ctrl-d */ newtio.c_cc
[VEOL] = 0; /* '\0' */ newtio.c_cc[VREPRINT] = 0; /* Ctrl-r */ newtio.c_cc[VDISCARD] = 0; /* Ctrl-u */ newtio.c_cc[VWERASE] = 0; /* Ctrl-w */ newtio.c_cc[VLNEXT] = 0; /* Ctrl-v */ newtio.c_cc[VEOL2] = 0; /* '\0' */
-
Thread
Größe eines #define String mit sizeof ermitteln
string literal dagegen die bis zur letzten. Beispiele: [c] strlen("test"); // 4 sizeof("test"); // 5 strlen("test\0test"); // 4 sizeof("test\0test"); // 10 char *test = "test"; strlen(test); /
[c] #include <avr/io.h> #include <string.h> #define VERS_PROGRAMVERSION "V01.00.00" /* Programmversion */ int main() { PORTB = strlen(VERS_PROGRAMVERSION); return 0; } [/c] erzeugt
-
Thread
UART-String ins EEPROM schreiben
Variablen auch. Aber ich krieg das Ding nicht ins EEPROM. Hab dafür folgende Funktion geschrieben: [c] char ee_serial_number[20] EEMEM; char line[20]; int main() { ... string_to_eeprom(line, ee_serial_number); ... } void string_to_eeprom(char *input, char *destination) {
x = 0; &input[x] != '\0'; x++) { eeprom_write_byte(&destination[x], &input[x]); } } [/c] In dem Array "line[]" steht die eingelesene Zeichenkette. Und dann wollte ich das eben so machen, daß Element für Element ins EEPROM übertragen wird, mit Überprüfung auf das String-Endzeichen. Aber
-
Thread
C# Programm hängt bei Serial Port1.ReadTo
Hallo zusammen ich habe das Problem, das Mein Programm hängt sobald ich meinen Serial Port auslesen will. Ich möchte Dauerhaft Daten auslesen von einer Com Schnittstelle und ein Start Signal für die Anlage Senden. mein Code den ich dauerhaft einlesen will kommt so an T25.21F90.54E Temperatur = 25.21 Füllstand = 90.54 das E steht für Ende anbei der Code.. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using
-
Thread
Analogsignale am PC auslesen/ausgeben (C#/C++)
Temperaturwert abzuleiten und per ACSII-String dem Gerät zuzusenden(Sollwert). Umgekehrt genauso, also Parameter des Gerät dem ACSII-String entnehmen und daraus eine entsprechende Spannung ausgeben (ebenfalls +/-10V, Istwert) Ich brauch also
D-Wandler, den man per USB/PCI an den PC anschließen kann und wenn möglich über ein selbstentworfenes C++ oder C# Programm die Analogwerte auslesen bzw. ausgeben kann. Die RS232-Kommunikation ist dann auch kein Problem, da man dies entsprechend selber programmieren kann. Gesucht wird eine fertige Lösung
-
Thread
C# : Datei in relativem Pfad zu Programm laden
Vielleicht hilft dir die Information die du hier bekommst: [c]string path = Application.StartupPath;[/c] (nach ca. 30s in google gefunden)
Kleiner Gratistipp am Rande: Bei Pfaden unbedingt statt -> RichTextBox.LoadFile("C:/Readme.rtf"); Dieses schreiben: RichTextBox.LoadFile(@"C:/Readme.rtf"); Das @ vor dem String verhindert, dass der String noch vorverarbeitet wird, also gewisse Zeichenketten durch andere ersetzt
-
Thread
C# Get Instanznamen
Ist es in C# (V7) möglich den Instanznamen eines Objektes irgendwie auszugeben? [c] myClass myInstance = new myClass(); public class myClass { string Name; public myClass() { Name = Zauberfunktion
eine Instanz zugewiesen wird. Soll die Instanz benannt werden, so ist die Übergabe des Namens als string der richtige Weg: [c] myClass myInstance = new myClass("myInstance"); [/c] Um dies syntaxtechnisch abzusichern, gibt es den "nameof" Operator, welcher dfür sorgt, dass es ein Code-Element mit
-
Thread
Variablen uint16_t hat falsche Werte
des Strings. Immer. Das ist die Art und Weise, wie in C Arrays übergeben werden. -> du brauchst ein C-Buch! > Zeiger auf das erste Element, da es mit const angegeben ist, sucht der > AVR im Flash-Speicher
Buchegger schrieb im Beitrag #3130967: >> Der Funktion wird ein char-Arrray übergeben, > > In C werden keine Arrays übergeben. Die Funktion kriegt einen Pointer > auf den Anfang des Strings. Immer. Das ist die Art und Weise, wie in C > Arrays übergeben werden. Tschuldigung, das ist mir klar
-
Thread
C++/CLI Teil aus String ausschneiden
ausgeschnitten werden > und überprüft werden ob sie "COM" lauten. Wenn es dir nur darum geht, dass der String "COM" beinhaltet tuts die [c]Contains[/c] funktion. Ansonsten die ersten drei strings mit [c]substring[/c] extrahieren und vergleichen.
-
Thread
C++: String to wchar_t*
möchte eigentlich nur ganz simpel eine Datei öffnen, mit createFile aus der windows.h Da ich in C++ programmiere nehme ich für strings auch string und nicht nach C-Methode Pointer auf Zeichen. Nun wollten die Windows API Funktionen ausgerechnet einen Pointer wchar_t haben. Wie konvertieren ich denn bloß einen string in wchar_t*? Mit .c_str() bekomme ich ja nur einen char*.
-
Thread
Programmierung für Linux und Windows
bei so einfachen Dingen wie dem Kopieren eines Strings den Fuss wegschiessen. Wenn C# unter Linux gut laeuft (ausprobieren!), bleib einfach dabei. Ansonsten nimm Java/JRuby, das ist ausgereifter als Python+wx, und nirgendwo geht das Erstellen von wirklich
for i in range(10) if i!=5]) filter(str, [1,2,"string",{}]) p = lambda a,b,c: lambda x: a*x^2+b*x+c wie in matlab gilt in python die regel, dass man eingebaute funktionen benutzen sollte, anstatt einer for oder while schleife. (map,filter) man
-
Thread
ATMega32 Absturz bei Zeicheneingang
Hallo, Bernhard: Ich habe es gerade mal geändert: [c] while ((sInBuffer[iTmpBufferPtr] != 0x00) && (sInBuffer[iTmpBufferPtr] != 0x20 && (iTmpBufferPtr <= (BUFFER_LENGHT-2)))) { // Command, max. String Länge aus ISR gesichert [/c] -> Gleicher
(ltoa(lCommandPar2, sOutString, 10)); UsartPuts (" -> "); UsartPuts("\n>>"); } } return 0; } [/c] langsam blick ich es wirklich nicht mehr. Gruß Andy
-
Thread
Hex-String einlesen und Binärwert laut Codetabelle zuweisen
Hans M. schrieb: > Wie kann ich das grundsätzlich machen? In welcher Programmiersprache? C? > Muss ich hier den String in ein > Array umwandeln mit 40 Zeichen? Wie hast du denn den String gespeichert? Der ist ja wahrscheinlich schon in einem Array gespeichert. > Wie kann ich dann
Programmiersprache C mit CCS-C Compiler Microchip MPLAB 8.36. Der String sieht folgendermaßen aus. Tippt man in LabVIEW die Nachricht "0123456789" ein, so wird der Hexadezimalstring "0000 000F 0033 003C 0055 005A 0066
-
Thread
Structs unter C++, nicht reproduzierbarer Fehler
[/c] Was, wenn es mal mehr als 29 Zeichen sind? Mit std::string geht es besser. [c] const int PlayFieldX = 5; const int PlayFieldY = 5; [/c] Die würde ich z.B. MaxPlayFieldX o.s.ä. nennen. [c] char Enemy[5]; [/c] Was, wenn der Benutzer mehr als 4 Zeichen eingibt? Auch hier lieber wieder std::string. Das Problem mit der Pufferung der Eingabe wurde ja auch schon genannt. [c] if (Enemy[0] == 'J' ||
-
Thread
Länge eines Strings
things to the end of the string stored in 'toto', so that it grows ever longer. To reset it back to "empty", simply: DEALLOCATE(toto); Which leads us to an attractive procedure that has the effect of copying any string into
* get hold of the whole string contents: report "Message is " & L.ALL; * take a slice of it, just like a string: variable c: CHARACTER; ... c := L(1); * find its length: if L'LENGTH > 50 then ... Allerdings funktioniert
-
Thread
Was ist ein Konstruktor-VisualC# 2010-Galileo Computing
[c] public class EineKlasse { private int _einInt; public EineKlasse( int wert ) { this.einInt= wert } } [/c]
Klaus P. schrieb im Beitrag #2374679: > Ich denke aber in C gibt es das Schlüsselwort this nicht oder täusche > ich mich da? In C nicht, aber in C++. Aber C# ist etwas vollkommen anderes, und um C# zu lernen, ist weder ein C- noch ein C++-Buch sonderlich
-
Thread
Transistortester AVR
in mV gebraucht werden. Diese Zeile ist zwar syntaktisch korrekt, aber nicht sehr leserlich: [c] if(j!=0)adcx += ADCW; [/c] Besser ist: (meine bevorzugte Version) [c] if (j != 0) { adcx += ADCW; } [/c] Oder: [c] if (j != 0) adcx += ADCW; [/c]
i want to add that i have not installed c9 and c6 becouse i know they can cause issues.
-
Thread
Ernstzunehmende Programme in BASCOM
verdanken, die mit Buffer-Overflows, Pointern, zu langen Strings usw. in den letzten Jahren aufgetreten sind. Weil dieses tolle C sich zu fein ist, darauf zu prüfen. Bzw. weil die Programmierer glauben, daß sie sooo klever sind und keine Prüfung brauchen. Ich
Timm T. schrieb im Beitrag #4177548: > Ja, wunderbar. Diesem tollen C haben wir so ziemlich sämtliche > Einfallstore zu verdanken, die mit Buffer-Overflows, Pointern, zu langen > Strings usw. in den letzten Jahren aufgetreten sind. Meinst du, das wäre bei den alten
-
Thread
RS232 mit PHP
werden, die ich dann auf einen(oder von mir aus auch mehrere) Ports schreibe? Oder habe ich mit nem yC auch die Möglichkeit, strings zu vergleichen? Geht sowas mit C? dann brauche ich bestimmt entsprechende Headers oder?
=9600 PARITY=N data=8 stop=1 xon=off`; $fp = fopen ("COM2:", "w+"); sleep(5); $string = fgets($fp); echo "Empfangen: ".$string."<br>"; $string = "I000"; echo "Test: ".$string; if (!$fp) echo "Port not opened."; else fputs ($fp, $string );
-
Thread
kleines C problem
Ok in diesem fall könnte man wirklich count oder so nehmen aber egal. Ich hätte es so gemacht: [c] void main(){ char text1[20]; int i=0; printf("geben sie ein wort ein:\n"); gets(text1); while(text1[i++]) ; printf("das wort hat %i buchstaben\n",i); } [/c]
debug[i-1] = '\0'; /* Stringterminierung */ printf("das Wort hat %i buchstaben\n",i-1); } [/c]
-
Thread
TWI I²C Temperatursensor
false); // lesen von Bytewert Nr. 2 } MK3_TWI_STOP(); MK3_TWI_WAIT(10); lcd_string (itoa(wert1 , buffer , 2)); _delay_ms(5000); lcd_clear(); lcd_home(); } } } [/c]
Vielleicht ist es nur ein copy-paste-Problem, aber Dein MK3_TWI_START scheint auskommentiert zu sein? [c] //--------------------------------------------------------- ok=MK3_TWI_START(); [/c]
-
Thread
PIC HEX Code umschreiben - geht das?
Eine Frage hinterher: Ich kann den HEX nicht generieren wegen Fehler. Es ist möglich das 'string.h' fehlt. Im *.mcp steht ja: file_010=D:\Microchip\c18_v3_30\c18\h\string.h Ist das nun ein Teil vom C18 Compiler, oder gehört 'string.h' zur Source? In dem Fall ist dann hier erstmal Schluss
Schon mal geschaut, was in dem Verzeichnis D:\Microchip\c18_v3_30\c18\h so alles drin ist? Gibt es dort ein string.h? Gibt es irgendwo im Microchip-Verzeichnis ein string.h?
-
Thread
C++ Dateininhalt auslesen und einteilen
Hallo, ich möchte ein Programm in C++ (Borland C++ 6) schreiben, dass aus einer Datei eine Bezeichnung und dann einzelne Zeichenfolgen (Datensätze aus z.B. jeweils 3 Zeichenfolgen) in Strings einliest (in ein Array?), die ich in einem
hängt davon ab, wie genau das Stringgrid aussieht. Eventuell den 'Umweg' gehen und aus den Arrays String-Objekte machen (bzw. entsprechende String Objekte befüllen), die dann ins String Grid Objekt zur Bearbeitung übergeben werden. Anstelle von fopen bzw. fread/fwrite könnte man natürlich auch die
-
Thread
Gnu Assembler Macros
das obige eingefügt und stattdessen den String "test" ausgeben lassen über das Label .KLAUS Das ist als a.c und a.s (mit gcc aus a.c erzeugt, dann wie beschrieben geändert) im Anhang. Also sollten bei dir doch nur die Gänsefüßchen fehlen?
aber bei der Verwendung des Arguments Gänsefüßchen > dazu genommen): > [code] > .macro blabla string > .KLAUS: > .string "\string" > .endm > ... > blabla "test" > ... > [/code] > > Zum Testen habe ich ein kleines C-Programm gemacht, das mit puts() was > ausgibt. > Dann
-
Thread
problem mit 8051er
DPTR,#TXT_Ausgabe_Vorname lcall SP_OutString jmp dekrementieren VergleichNN: clr c cjne A,nachname,Eingabe mov DPTR,#TXT_Ausgabe_Nachname lcall SP_OutString dekrementieren: djnz
Sendet das Byte, auf das r0 zeigt (ergibt Char) ;SP_OutHexA: Sendet das Byte im Accu als Hex-String (z.B. FF) ;SP_OutByteHexR0: Sendet das Byte, auf das r0 zeigt, als Hex-String (z.B. FF) ;SP_OutWordHexR0: Sendet das Byte, auf das r0 zeigt, und das nächste Byte als ; Hex-String (z.B.
-
Thread
Atmel Studio 6.2 - sprintf() - Problem
Pyromaniac schrieb im Beitrag #3909287: > strcpy(buf, "Linie 2\0"); string.h eingebunden? Das \0 ist überflüssig, da der Compiler bei Stringliteralen automatisch ein '\0' anhängt. Wie sieht es bei [c]char buf[32] = "Linie 2";[/c]oder [c]send_string("Linie 2");[/c]aus
es bei [c] char buf[32] = "Linie 2"; [/c] > oder [c] send_string("Linie 2"); [/c] > aus? Beides führt zu dem immer selben Ergebnis wie auch schon bei sprintf().
-
Thread
LCD gibt keine String aus
lcd_clear ; Display löschen ldi ZL, LOW(text*2) ; Adresse des Strings in den ldi ZH, HIGH(text*2) ; Z-Pointer laden rcall lcd_flash_string ; Unterprogramm gibt String aus der ; durch den
konstanten Text aus dem Flash Speicher ; ausgeben. Der Text wird mit einer 0 beendet lcd_flash_string: push temp1 lcd_flash_string_1: lpm temp1, Z+ cpi temp1, 0 breq lcd_flash_string_2 rcall lcd_data rjmp lcd_flash_string
-
Thread
C# Serialize Json
Hallo, Ich habe ein C# File mit 3 Klassen die ich serialisieren und in ein File speichern will, ein Objekt in einen String umwandeln kann ich, nur weiß ich nicht wie ich alle 3 Objekte in ein Json Object bzw. String packen
SerializingJSON.htm Weitere Lösungen werden hier vorgeschlagen: http://stackoverflow.com/questions/6201529/turn-c-sharp-object-into-a-json-string-in-net-4
-
Thread
Elemente in einfache verkettete Liste speichern
[c]List *readInput(char *name_of_file, int *error_code, int *number_of_entries) { FILE *input_file; char *whole_content_string = NULL; List *list; int end; int counted_content_length
array_index_description++) { list->content.description[array_index_description] = whole_content_string[(end_of_Word + 1)]; end_of_Word++; } free(whole_content_string); counted_content_length = 0; entry_counter++; } while(ftell(input_file) != end); }[/c]
-
Thread
Speichermanagement
C - Grundkurs, 3. Tag: mit " werden C-strings eingeschlossen, also eine Sequenz von Zeichen die mit einem '\0' character endet. mit ' werden einzelne Zeichen eingeschlossen, also ein
(text); // ausgabe string pos(2,1); run(20); print("Servas Text") // ausgabe string run(20); for(;;){ } //endlosschleife } hier die lcd.c: #include<avr/io.h> #include
-
Thread
String automatisch verändern.
Vielleicht in Anlehnung and das hier? [c] sprintf (Dateiname, "%06d.CSV", zahl); [/c] und diesen Mist hier weglassen? [c] Dateiname [0] = '1'; Dateiname [1] = zahl; Dateiname [2] = '3'; Dateiname [3] = '4'; Dateiname [4] = '5'; Dateiname [5] = '6'; Dateiname [6] = '7'; [/c]
-
Thread
Konstanter String - zu lang!?
Hallo, in meinem µC möchte ich einen konstanten String ablegen, denn ich dann bei Bedarf über's Netzwerk rausschicken kann. Mein erster Versuch war Folgender (Pseudo-Code): [c] byte MyString = {... 0x65, 0x66, 0x67
(wie viel genau habe ich noch nicht analysiert). Mein zweiter Versuch: den String aufteilen: [c] byte MyString1 = {... 0x65, 0x66, 0x67 ...}; // Nur 1024 Bytes byte MyString2 = {... 0x65, 0x66, 0x67 ...}; // Nur 1024 Bytes byte MyString3 = {... 0x65, 0x66, 0x67 ...}; // Nur
-
Thread
Hex zahl auf richtigkeit überprüfen
Guten Morgen ich mache in den Ferien ein kleines Projekt mit einem Atmega in C. Nach der Eingabe wird der String in ein Char-Array gelegt. Nun suche ich nach einer Lösung wie ich einen Wert aus einem Char-Array am besten überprüfe, ob es sich um eine gültige Hex-Zahl handelt
kaum mehr eine > Rolle spielt: Wer garantiert dir, dass die Buchstaben hintereinander > kommen? Der C-Standard garantiert dir das nämlich nicht. Der Ansi und Ascii-Standard definiert das, und um den gehts ja bei der String-Auswertung :-) wollte nur zeigen, dass man so ein Problem auch effizient "
-
Thread
Umwandlung ASCII Charactr zu decimal in STM
dir einfach mal die C-Grundlagen zur String-Manipulation an.
#0 initialisiert (bis auf die ersten 2 Positionen - sort steht ja Deine Zahl). Damit hast Du Deinen C-String. Du übergibst atoi nur eine Referenz auf Deinen Puffer und gut ist. Du kannst auch über die Elemente des Puffers iterieren und jeden Wert umwandeln, so wie es hier mehrfach gezeigt wurde, und
-
Thread
Lib Roland Riegel, Dateinamen hochzählen lassen
Anna schrieb im Beitrag #2562759: > const char* file Das bedeutet nur, dass der Inhalt vom String, worauf /file/ zeigt, von der Funktion nicht geändert wird. > Ich programmiere in C. Und welchen Fehler bekommst du? Wie sieht deine Deklaration und wie sieht deine funktion aus?
Nachdem Dein Dateiname nicht konstant ist ("raufzählen"), darf er auch nicht const deklariert werden: [c]char* filename[11];[/c] Deine Lib erwartet allerdings einen konstanten String, also casten: [c]fat_create_file(&parent, (const char*) filename, &dir_entry);[/c] In diese Richtung char* --> const
-
Thread
SPI immer gleiche Antwort
Ich habe das jetzt mal so abgeändert das ich nach Übertragung CS wieder auf High ziehe: [c] if(rxc) { u8_spi_write_buffer[0] = receive_string[0]; u8_spi_write_buffer[1] = receive_string[1]; PORT_SPI &= ~(1<<DD_SS); SPI_Transmit(receive_string[2],u8_spi_write_buffer
[0] = 0x2c; u8_spi_write_buffer[1] = 0; u8_spi_write_buffer[2] = 0; SPI_Transmit(receive_string[2],u8_spi_write_buffer,3); acceleration_l = u8_spi_read_buffer[1]; acceleration_h = u8_spi_read_buffer
-
Thread
Schrittmotorsteuerung für primitive Astro-Nachführung
Ich werde mir vmtl. den ATmega8 zusammen mit Lochrasterplatine, sämtlichen Bauteilen (LED, R's, C's, Quarz, Spannungsregler,... ) und einem Programmer ordern. https://shop.myavr.de/index.php?sp=shoppingCart.sp.php&ses=I1RGTfCrCwCbyyCiB8CxCc2ChCrnB8CeCfhCmCpoCo0xB3CwaCxCgC8DhCjCaByBtDeC1BaC6DhDbC7B0BoC1tBdtCyDdDdCpg4CpCoikChB3CoB4CtB8ChCsCvdi
[j] = st[i-j-1]; } string[i] = '\0'; free(st); } [/c]
-
Thread
Prog. läuft auf Mega128 aber nicht auf Mega8!
Oje... den Code wollt ihr also sehen... aber nicht wundern, bin blutiger Anfänger ;) [c] // Display an PORTC // MAX6675 an PORTB // Taster an PORTD // Output Relais an PORTD #include <stdint.h> #include <stdlib.h> #include <string.h> #include <avr/io.h> #include <util/delay.h
MENU_DOWN)==1) { intOffset--; } itoa(intOffset, strOffset, 10); lcd_string(strOffset); long_delay(23); break;} } } [/c] Nochmal was im Nachhinein. Ich habe am Schaltausgang parallel zum Relais noch eine LED mit drangehängt. Das würde doch bedeuten
-
Thread
C++ Matrizenmultiplikation mit Variablen statt Zahlen
Denkanstoß: du könntest als Typ std::string nehmen statt double, dann statt multiplizieren immer die strings mit * zwischendrin aneinanderhängen, und am Schluss (oder zwischendrin) alles evaluieren was geht. Das geht natürlich eleganter, aber
verschiedene Leute getan und du kannst auf deren Arbeit aufbauen :) Vor Jahren habe ich mal in C++ mit GinaC symbolisch gerechnet: https://ginac.de/ MfG, Arno
-
Thread
Programm zur Frequenzmessung
man fertige Funktionen itoa() bzw. ltoa(). Dazu braucht man natürlich eine Funktion, die einen String ausgeben kann. Die ist aber kein Problem: [C] void lcd_write_string( char* String ) { while( *String ) lcd_write( *String++ ); } [/C] Damit reduziert sich die auch sofort die Initialisierungssequenz
lcd_write_string( Buffer ); lcd_home(); flanke = 0; lcd_clear(); } } } [/C] Und dann würde ich mal hergehen und würde am µC mal ausprobieren, ob in diff vernünftige Werte rauskommen
-
Thread
atoi erzeugt Überlauf?
Satzes gehen while( *string && *string != '\n' ) string++; string++; *pos_ = string - initFile; } [/C] Ich weiß, am Anfang ist das nicht leicht. Aber du solltest dich schnellstens mit Pointern wenigstens
keine Zahl, sondern erstmal wieder Buchstaben, und die werden laut http://www.cppreference.com/wiki/string/c/atoi ignoriert.
-
Thread
AVR-GCC: Welcher Zeichensatz?
im Beitrag #3250212: > Nicolas S. schrieb im Beitrag #3250197: >> Ganz einfach: >> fprintf("\265C.net"); // geht >> fprintf("\xb5C.net"); // geht nicht. > > > oktal muss mit 0 einfangen! Nein. Ein Octal-Code in einem String ist ein Backslash mit drei Ziffern dahinter. \265 ist völlig korrekt
Stefan Ernst schrieb im Beitrag #3250219: > Nein. Ein Octal-Code in einem String ist ein Backslash mit drei Ziffern > dahinter. \265 ist völlig korrekt. oh stimmt, bei 3 stellen kann man es so schreiben. Aber dann sollte auch hex genauso gehen. > fprintf("\xb5C.net"); /
-
Thread
C char array Manipulation für atoi
schlimmeres, als Code in Prosa zu posten. Ich verstehe nur Bahnhof. Was ist denn so schwer an Ctrl-V, Ctrl-C?
Sicher funktioniert das als Workaround, aber es ist keine saubere Lösung. Würdest du das auch mit Strings machen, die mehrere Megabytes lang werden dürfen? Sicher nicht. Jede Funktion, die Strings verarbeitet, schließt entweder auch das terminierende null Zeichen ein oder liefert die Länge des Strings
-
Thread
cjson und Strings
Pressure_Akt= pressure->valuedouble; Visibility_Akt= visibility->valuedouble; uint16_t position_string=strstr(json_buffer,text); return 0; } [/c] Mit den Zahlen klappts super, jedoch fehlt mir die Erfahrung, wie ich die Texte aus dem JSON lede, wie die "description" etc. Kann mir jemand dies
mit [c] CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item) [/c] ? cJSON rein, char* raus. Und für die numerischen Werte gibts auch eine API Funktion: cJSON_GetNumberValue. Direkt in eine
-
Thread
Alles Rund um den MEDION LIFE P89626 NAS
) from [<c00092d4>] (prepare_namespace+0x168/0x1c0) [<c00092d4>] (prepare_namespace+0x168/0x1c0) from [<c0008c1c>] (kernel_init+0x1a4/0x1ec) [<c0008c1c>] (kernel_init+0x1a4/0x1ec) from [<c0041c20>] (kernel_thread_exit
) from [<c00092d4>] (prepare_namespace+0x168/0x1c0) [<c00092d4>] (prepare_namespace+0x168/0x1c0) from [<c0008c1c>] (kernel_init+0x1a4/0x1ec) [<c0008c1c>] (kernel_init+0x1a4/0x1ec) from [<c0041c20>] (kernel_thread_exit
-
Thread
Intel-Hex in .NET einlesen.
Hi! So schwer kann dass doch nicht sein! [c] Dim s As String = "1234567890ABCDEF" Dim b As Byte = Convert.ToByte(s.Substring(10, 2), 16) ' b = 0xAB [/c] lg
[c] byte hexStrToByte(string s, int offset) { // Umwandlung zu Fuß oder z.B. so return Convert.ToByte(s.SubString(offset, 2), 16); } UInt16 hexStrToUInt16(string s, int offset) { ...
-
Thread
Target mit SWD verbinden - "Vdd from Application" , GND?
HAL_Delay(100); ITM_SendString("LED\n"); } [/c] eingebaut und dann die Funktion ITM_SendString(*str) implementiert. [c] void ITM_SendString(char *str) { while(*str){ ITM_SendChar(*str); str++; } }
Machst du C oder C++? Bei C++ könnte es zwei verschiedene ITM_SendString geben (für const und nicht-const).