-
Thread
C++ Funktions Template für __flash
behilft man sich mit einem Trick, indem man eine neue Klasse (und damit einen neuen Typ) namens __FlashStringHelper deklariert und dann ein Makro _F definiert, das einen gewöhnlichen C-String (Zeiger auf Zeichenkette) im Flash in einen Zeiger auf diese neue Klasse "umformt": https://github.com/arduino/ArduinoCore-avr
Da fehlt ein [c]#include <string.h>[/c] Ist wohl beim Arduino standardmäßig dabei [code]reinterpret_cast' is not a constant expression[/code] Ahh, der alte GCC vom Arduino ist da nachlässiger. Müsste man umbauen
-
Thread
Zweite Zeile LCD Display
void) { // LCD Initialisieren lcd_initialisieren(); // LCD Ausgabe lcd_set_string(2,1,"blub"); // Programmende return 0; } [/c] Auschnitt aus der Library: [c] // String zur aktuellen Cursor Position senden void lcd_string(const char *string) { // String
zur Position senden lcd_string(string); } [/c]
-
Thread
String auf Zahlen reduzieren
Hallo, wie kann ich in C# einen String auf seine Zahlen reduzieren? Beispiel: "C1:VDIV 700E-3 V" hätte gerne die 700*10hoch-3. Natürlich wird bei einem Algorithmus, der die Zahlen im String erkennen soll, auch die eins sehen
Dimha B. schrieb im Beitrag #6376943: > "C1:VDIV 700E-3 V" Hallo, wenn das Format für jede Zeile stimmt, dann: string test = "C1:VDIV 700E-3 V"; string[] input = test.Split(' '); double zahl = Convert.ToDouble
-
Thread
float aus UART berechnen
(Convert.ToInt16(BitConverter.ToSingle(OutBytes, 132)).ToString()); [/c] Da überträgt er es ja dann direkt als String aber, das heißt ich müsste im Tiny den String erst wieder in eine Integer wandeln - und genau da ist mein Problem! Das kostet mit atoi wahnsinnig
byteArray[0]; ListTemp[2] = byteArray[1]; ListTemp[3] = newline[0]; ComPort.Write(ListTemp, 0, 3); [/c] Einmal dann zum µC geschickt kann ich da einfach die Bytes shiften und hab mein uint10_t: [c] dataUART = uart_string[1] + (uart_string[2]<<8); [/c] Somit ist zwar der Rechner etwas belastet
-
Thread
BASCOM: Zeichenumwandlung nach Vorgaben aus einer Tabelle
anderen Wert, aber seis drum. Dein Problem besteht darin, dass BASCOM anscheinend, ähnlich wie C, seine Strings mit 0 abschliesst. Und da dein Gerät bei einem 'A' den Code 0 sehen will, ist damit das ganze Konzept des 'einen String in einen anders codierten String zu verwandeln' schon mal den Bach
Hallo! Habe es noch nicht ausprobiert aber würde es in etwa so funktionierten: [c] dim text as string*10 dim char(10) as byte dim i as byte dim index(10) as byte text = "ABCDEFGHIJ" i = 1 Do 'Einzelne Chars aus String ziehen char(i) = mid(text , i , 1) 'Char
-
Thread
2dimensionales Array
Die werden auch String-Arrays genannt, obwohl es in C und C++ keinen eigenen Datentyp "string" gibt. Das mit der \0 zum Schluss hat einen guten Grund. Es gibt einen ganzen Haufen String-Funktionen in C und C++ (string.h)
Willi S. schrieb: > Die werden auch String-Arrays genannt, obwohl es in C und C++ keinen > eigenen Datentyp "string" gibt. Das mit der \0 zum Schluss hat einen > guten Grund. Es gibt einen ganzen Haufen String-Funktionen in C und C++ > (
-
Thread
Verwendung von Stringkostanten mit dem AVR?
Stefan... ganz so daemlich bin ich dann auch nicht ;) OK dann mal ein konkretes Beispiel: [c] display_string("some string..."); [/c] Wobei display_string wie folgt definiert ist: [c] void display_string(char* string) { while (*string != '\0') { display_send((uint8_t)
sein? Er: [c] void display_string(char* string) ... display_send((uint8_t)*string++, TXT); [/c] [c] char buffer[3]; ... display_send(buffer); [/c] Ich: > In den beiden Beispielen wird "display_send"
-
Thread
char string mit sonderzeichen
hallo habe probleme beim definieren eines strings. anscheinend mag er die sonderzeichen nicht denk mal an die ". wie kann ich das richtig schreiben?! [c] const char text[] = " <?xml version="1.0" encoding="UTF-8"?>/n ";[/c] mit folgender fehlermeldung
danke hab ein c buch vor mir liegen, nur leider im string teil wird das nicht besprochen. aber wo du es jetzt schreibst kann ich mich wieder erinnern sowas gesehn zu haben, so ca 200seiten weiter vorne. jedenfalls
-
Thread
PCF 8574P + LCD
Boah... :-) Also wenn ich das richtig überblicke, enthält $data2 den kompletten String data, und zwar jeweils 8 "Bit" als String aus 0 und/oder 1... For $i = 1 To (($laenge * 2) - 1) +1 $zw1 = StringLeft($data2, (4*$i)) $zw1 = StringRight($zw1, 4) $zw2 = "1001" &
im String $asciicode=asc(StringMid($data,$t,1)) ;in asciicode umwandeln $data2 &= Hex($asciicode, 2) ;und dann in hex (2stellig) next For $i = 1 To ($laenge * 2) $zw1 = StringMid
-
Thread
Serielleschnittstelle RS232 C++
Damit hast du aber nicht die 14 byte gelesen. Was macht eigentlich der .net code zwischen deinem C++ code? Oder ist das C++.net
eine funktion die daten von der Serielen schnittstelle abruft bis eine CR kommt und sie dann als String zurück liefert std::string s; char c; while( true ) { size_t r = readfile( c, 1 ... ); if ( r != 1 ) { throw Exception("Fehler beim empfang"); } if ( c == '\n' ) { break
-
Thread
Frequenzausgabe formatieren
Also, in Haskell würde ich das so schreiben: format :: String -> String format = reverse . format' . reverse where format' (a:b:c:d:xs) = [a,b,c,'.'] ++ format' (d:xs) format' xs = xs Das könnt ihr euch ja nach Basic oder C oder sonstwas
Voraussetzung, dass F die Frequenz in oben genannter Form enthaelt und niemals leer wird: Dim F As String * 15 Dim T1 As String * 4 Dim Resultx As String * 20 Dim A As Byte , B As Byte Dim C As Byte F = "50" Resultx = "" B = Len(f) C = B / 3 C = C * 3 A =
-
Thread
Variablen setzen sich auf 0 Gesperrt
sind. Variablendeklaration global Eine ISR empfängt Zeichen und speichert die in einem String [c] int main () { while (true) { if( Neue Zeichenkette wurde empfangen) { if (r=1) Schalte die LED ein; if (erstes Zeichen der Zeichenkette = !) r=1; } else
gesetzt wird. Auch die Variablen get, set, und status werden nach jedem Durchlauf auf 0 gesetzt. [c] while (1) { if (complete && start == 1 ) //Überprüfen ob kompletter String erhalten wurde { str_len=0; //Länge des Strings zählen while(rx_str[str_len
-
Thread
Embedded Linux erkennt USB Stick aber /dev/sdd wird nicht angelegt? /dev/ttyUSB bei UMTS-Stick auch!
high-speed USB device number 6 using musb-hdrc [ 44.866363] usb 1-1.3: New USB device found, idVendor=1c9e, idProduct=f000 [ 44.873596] usb 1-1.3: New USB device strings: Mfr=3, Product=2, SerialNumber=4 [ 44.881317] usb 1-1.3: Product: USB Modem [ 44.885559] usb 1-1.3: Manufacturer: USB Modem
high-speed USB device number 4 using musb-hdrc [ 6.988281] usb 1-1.4: New USB device found, idVendor=1c9e, idProduct=f000 [ 6.995513] usb 1-1.4: New USB device strings: Mfr=3, Product=2, SerialNumber=4 [ 7.003234] usb 1-1.4: Product: USB Modem [ 7.007476] usb 1-1.4: Manufacturer: USB Modem
-
Thread
AVR-UART Interruptgesteuert oder nicht?
den Empfang mit IRQ-Handler. Der IRQ-Handler schreibt die empfangenen Bytes in ein char Array (=String). Der String wird jeweils vom Handler mit ASCII 0 C-konform abgeschlossen. In dem String sucht die Hauptschleife mittels strstr dann ELM327. Wenn ELM327 gefunden wurde, wird der String wieder gelöscht
// Noch ein '\0' anhängen um einen Standard // C-String daraus zu machen *Buffer = '\0'; }[/c]
-
Thread
Allgemeine Assemblerfragen
ZX81 einem Computer von 1981. Ich beherrsche BASIC und SmallBASIC, sowie AmigaBASIC und Assembler. C++ und Forth. Ich glaube auch noch etwas C. Ich wollte fragen, wie ich in Assembler einen eingegebenen String in einzelne Teile zerlegen und dann verarbeiten kann? Also: Eingabe: Hallo Welt Ausgabe
mal musst du den String im Speicher haben! 20 zeichen 'G' ausgeben zählt noch lange nicht als String.
-
Thread
xml Childknoten zusammenfassen c#
Hallo, ich programmiere mir gerade ein Adressbuch. Dazu habe ich zunächst alle meine Konatkte als VCard erstellt und in eine XML geschrieben. Das hat auch soweit ganz gut geklappt. Beim nächsten Schritt stehe ich allerdings auf dem schlauch. Ein Kontakt ist wie folgt aufgebaut [code] <Kontakt> <Name Name="xxx,xxx" /> <Telefon zu Hause="+01234567" /> <Telefon Mobil="+1234567" /> <Telefon Arbeit="+765432" /> <Adresse Straße="asdf" Ort="asdf" PLZ="12345" /> <Geburtstag Geburtstag="1980-07-09" /> </Kontakt> [/code] Wie man sehen kann, ist für
-
Thread
Interrupt löst nicht aus?
Welcher µC wird benutzt?
; uart_puts(" mm"); uart_putc('\0'); lcd_setcursor(4,1); lcd_string("Weg : "); lcd_string(" "); lcd_setcursor(4,7); lcd_string(s); lcd_string("."); lcd_string(t); lcd_string(" mm"); uart_putc('\0');
-
Thread
Daten über usart empfangen/ wann Datenende erreicht?
ende = wert; StringLen++; NextChar = usart_getc(); } // Noch ein '\0' anhängen um einen Standard // C-String daraus zu machen
und deswegen weis ich das kein weiteres Endzeichen geschrieben wird. Sieht hier jemand in dem String irgend ne Prüfsumme versteckt? 4D 41 0C 49 00 1C 07 2B 5A 75 73 74 61 6E 64 04 1A Bei den ersten 2 Zeichenketten die es schickt sah es so aus als ob das letzte zeichen eine Prüfsumme wär aber bei
-
Thread
implicit declaration lo8
x", crc ); usart_puts( buffer, strlen( buffer ) ); Für strlen musst du noch #include <string.h> ganz am Anfang inkludieren. sprintf() ist glaub ich auch mit diesem Include abgedeckt. Wenn nicht, dann #include <stdio.h> Und dann empfehle ich dir noch ein C-Buch zu kaufen und durchzuarbeiten
eine Punkt. Der nächste ist: > und dann den buffer mit der puts ausgeben. puts hält sich an die C-String Konventionen. Die besagen, dass die Character-Sequenz im Array mit einem '\0'-Zeichen abgeschlossen wird um anzuzeigen, dass der String hier aufhört (Das Array kann ja wesentlich größer sein
-
Thread
[C#] Form1 Funktion aus Form2 aufrufen
das das aufgrund der Sicherheitsebene nicht möglich ist. Was muss ich tun damit's klappt? Benutze C# Express 2008.
{ // Funktion aus Form1 aufrufen Beliebig.SendCommand(...); [/c]
-
Thread
Matlab - Mikrocontroller - serielle Schnittstelle
rate here */ #define UART_BAUD_RATE 9600 uint8_t uart_getc_wait() { unsigned int c; do { c=uart_getc(); }while (c == UART_NO_DATA); return (uint8_t)c; } void uart_gets( char* Buffer, uint8_t MaxLen ) { uint8_t NextChar; uint8_t StringLen = 0; NextChar
); } // Noch ein '\0' anhängen um einen Standard // C-String daraus zu machen *Buffer = '\0'; } int main(void) { char Line[40]; uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); sei(); while(1) { uart_gets
-
Thread
wie bekomme ich folgende warnings weg?
In der for-Schleife. kann ich diese irgendwie umschreiben? zb [c] string[10]='\0'; // String Terminator for(i=10; i>=1; i--) { i--; string[i]=(zahl % 10) +'0'; // Modulo rechnen, dann den .. zahl /= 10; } [/c]
findet, sondern man wird gleich in die richtige Zeile gelotzt. Ähnlich dem ist auch sowas wie: [c] if ("".equals(str)) {} [/c] In Java, um eine NPE für null-Strings zu verhindern. Daran musste ich mich aber auch erst gewöhnen.
-
Thread
Oktalzahlfalle strtol
braucht’s nicht. https://man7.org/linux/man-pages/man3/strtol.3.html https://en.cppreference.com/w/c/string/byte/strtol Oliver
c] int x = 0q00s; [/c] oder um es etwas deutlicher zu machen ein Fall der auch in C zu Problemen führen würde [c] int x = 0q00l; [/c]
-
Thread
Interner Pullup Widerstand, Buttonansteuerung klappt nicht
[C] if(!(PINB & 0x01)) { _delay_ms(50); while(!(PINB & 0x01)); _delay_ms(50); lcd_init(); //lcd_clear(); set_cursor(0,2); lcd_string("YEAH");
Ja, das ist immer ganz wichtig [C] void lcd_start(void) { lcd_string("Status:"); set_cursor(0,2); lcd_string("online"); } [/C] Auch wenn nichts im Programm funktioniert. Eine 'System hochgefahren' - "Copyright by Anfänger
-
Thread
UART: Hex-Bytes versenden
dein uC das als ASCII-Zeichen ’A’ oder 0x41. In deinem Programm kannst du daher auch die Bytes vgl. Es ist total Wurst, ob du jetzt, bspw. zur Prüfung bestimmter Zeichen in einem String, 0x41 oder ’A’ hernimmst
|=(1 << U2X0); UCSR0B |=(1 << TXEN0) | (1 << RXEN0); // USART Receive/Transmit Complete UCSR0C |=(1<< UCSZ01) | (1 << UCSZ00); // Charactersize 8-bit, 1 Stop Bit, Parity Mode disabled } void SEND_CHAR (unsigned char c){ while (!(UCSR0A & (1 << UDRE0))); UDR0 = c; } // void SEND_STRING
-
Thread
arduino display geht aus
Programmier es besser in echtem C!
etwas falsch dargestellt. Zum EINschalten ersetzt Du in Deinem Code und mit Deinem Keypad-Shield: [c] analogWrite(BACKLIGHT,70); [/c] durch [c] pinMode(BACKLIGHT,INPUT); // LCD Backlight EIN [/c] Und zum AUSschalten ersetzt Du [c] analogWrite(BACKLIGHT,0); [/c] durch [c] pinMode
-
Thread
Vorteile 32 Bit Controller
eben um diese > Attributvergabe kümmert. Tut er das? Wie sieht dein Aufruf printf("%s %s %s", string1, string2, string3) aus, wenn - der Formatstring im ROM liegt, - die Variable string1 im RAM liegt, - die Variable string2 im ROM liegt, - von der Variablen string3 nicht bekannt ist, ob sie in
Compiler erkennt das natürlich nicht automatisch. Aber er erkennt ja auch nicht bei printf("%s %d","string_var,int_var); die Variablentypen. Ist ein ähnlicher Fall. Da ist C halt beschränkt :-( Und auf der Ebene betrachtet finde ich, nimmt der Compiler einem auch Arbeit ab, wenn es um Speicherbereiche
-
Thread
DS1820 reagiert garnicht, C Programm fehlerhaft? Sensor defekt?
[c] ... schreibe('T'); schreibe(':'); schreibe(' '); ... [/c] ist doch grober Unfug. Einen String an ein LCD auszugeben braucht praktisch jedes Programm. Daher schreibt man sich eine Funktion, die das kann [c] void lcd_string( const char* str ) { while( *str ) schreibe( *str++ ); } [/c] und benutzt die dann: [c] ... lcd_string( "T: " ); ... [/c] aufbauend auf der String Funktion
-
Thread
C# Form programmieren
Listbox imme rnoch blabla.txt stehen. Aus dem inernet habe ich folgendes: Laden des pfades: string[] listItems = System.IO.File.ReadAllLines(@"items.txt"); listBox1.Items.AddRange(listItems); Speichern des Pfades string[] listItems = new string[listBox1.Items.Count]; listBox1.Items.CopyTo(
sehr schön beschrieben: http://www.codeproject.com/Articles/15013/Windows-Forms-User-Settings-in-C
-
Thread
Array/String Länge ermitteln ohne NULL am Ende
Hallo, wie kann ich in C (nicht C++) die Länge eines Arrays/Strings ermitteln wenn in den Nutzdaten alle Werte zw. 0-FF Verwendung finden? Hintergund es geht um das versenden von Daten im TP2.0/KWP CAN-Protokoll. Die Länge
zählst (ha!) und eine Zeichenkette der Länge dieser Summe anlegst, und die einzelnen hineinkopierst: [c]char string1 [] = "01 02 03"; char string2 [] = " 04 05 06"; char gesamt [sizeof (string1) + sizeof(string2) - 1]; memcpy (gesamt, string1, sizeof(string1)-1); memcpy (gesamt+sizeof(string1)-1, string2
-
Thread
String to long integer
Jetzt versehe ich nichts mehr... Ich habe folgendes: [c] char ausgabe[7]; // z.B. 9999999 unsigned long var; [/c] jetzt wandle ich den String in long interger um [c] var=atol(ausgabe); [/c] habe also in var den Wert 9999999 also long integer.
Weil ein String in C immer mit einem Nullbyte abgeschlossen wird. 7 Zeichen (z.B. die '9'-en) und die abschließende 0 macht 8 Feldelemente. -> elementare Grundlagen C
-
Thread
Pointer auf String im Flash
Hallo, ich habe ein Problem mit dem zeichenweise auslesen eines Strings aus dem Flashspeicher eines AVR. Den Text im Flash habe ich so angelegt: [c] const char h1[] PROGMEM= "Hallo, ich bin aus dem Flash"; [/c] Die Zeichen sollen über die serielle Schnittstelle ausgegeben
, was jedoch nicht funktioniert: [c] char *ptr_h1; ptr_h1 = h1; while (*ptr_h1) { zeichen = pgm_read_byte(ptr_h1); uputchar(zeichen); *ptr_h1++; } [/c] Dann werden bei mir teilweise Zeichen gesendet die im String
-
Thread
Gute Pufferlösung zwischen ISR und Mainloop
Wenn Du nicht mit jedem Byte sparen mußt, danmn würde ich z.B. ein Feld von 10 Strings zu je 64 Byte anlegen. Dieser Strings verwendest Du zylkisch, wie einen Ringbuffer. Ein Pointer zeigt jeweils auf den nächsten freien String in den die seriellen Kommandos abgelegt werden und auf den String, den der Mainloop als nächstes Abarbeiten soll. Klaus
-
Artikel
String-Verarbeitung in C
bzw. auf einführende Literatur zum Thema 'Programmieren in C' verwiesen. Wie schreibt man eine Funktion, die einen String liefert?. Will man eine Funktion schreiben, die einen String liefert, so hat man ein Problem. So gehts nicht: Strings sind ja nichts anderes
Und das geschieht in C, indem man einen Zeiger auf das erste Zeichen nimmt. Das ist string. Falsch (und zwar richtig falsch!) ist diese Lösung aber aus folgendem Grund: string ist eine automatische Variable (alle lokalen Variablen
-
Thread
Beschnittene Zeichenabfolge in string gesucht
Hallo, wenn ich einen string habe, in den ich kontinuierlich reinschreibe, wie kann ich eine gewünschte Zeichenabfolge auch dann finden, wenn sie sich in den Randbereichen des strings befindet. Beispiel: Stringgröße: 10
Argh- bekomme es nicht hin. :( if ((commandbuffer[i] = 'L') && (c[(commandbuffer+1) % 7] = 'i') (c[(commandbuffer+2) % 7] = 'b') (c[(commandbuffer+3) % 7] = 'e') (c[(commandbuffer+4) % 7] = 'l') (c[(commandbuffer+4) % 7] = 'l') (c[(commandbuffer
-
Thread
Zuweisung von std::arrays überladen
: T daten; }; template<> std::string& test<std::string>::operator=(const std::string& in) { return daten; } [/c] vlg Timm
& in) { std::cout << "String Spezialisierung\n"; return *this; } [/c] vlg Timm
-
Thread
Strings für LCD im Flash ablegen
/c] Nur weis ich nicht ob hier noch PROGMEM fehlt was in den Beispielen beim Arrayaufbau verwendet wird Die Strings sind wie folgt definiert [c] const char MT01_001[] PROGMEM ="123456"; const
im Flash ist, an der der String abgelegt wurde. Also kannst du mittels strcpy_P den tatsächlichen String von dort holen. [C] strcpy_P(M01_String, pstrflash01); [/C] M01_String muss als char Array natürlich groß genug
-
Thread
C# Serielleschnitstelle Empfang zu viele zeichen
blinken. sobald ich das slepp einfüge funktioniert es ohne probleme. habe gelesen das bei einem string ein line feed oder carriage return (\n,\r) gesendet wird. leider kann ich das nicht kontrollieren ob das der fall ist. das andere ist ich weis nicht wie man in c (beim Pic) einen carragie return
, dann Putty >geöffnet. Damit die C#-Anwendung getestet oder die Kommunikation mit dem PIC?
-
Thread
Hilfe bei Char[] und Verarbeitung
Servus, probier mal: char sendepuffer[20]; sprintf(sendepuffer,"\r\nEmpfang: >%c",uart_string); uart_puts(sendepuffer); Für den Fall eines C-Strings %s statt %c nehmen. Gruß, Jonas
%c ausgeben. Das geht nur mit uart_string[0]. Wenn schon, dann eher sowas: [c] #define PUFFER_GROESSE 20 size_t laenge; char sendepuffer[PUFFER_GROESSE]; strncpy(sendepuffer, "\r\nEmpfang:
-
Thread
falsche Zuweisung
} } [/c] Damit wartet man darauf, dass der Sendebuffer bereit ist, und schickt jeweils das nächste Zeichen eines Strings. Genaugenommen schreibt man sich eigentlich eine [c] void sendchar(char c); [/c] die dieses Low-Level-Handling übernimmt, und füttert die mit Daten (z.B. aus fputc, einer SendString, o.ä. VG, /th.
-
Thread
C++ statische Template-Variablen Spezialisierung
So müsste es gehen: foo.h: [c] #include <string> #include <typeinfo> template<class T> struct C { static std::string classname; }; template<class T> std::string C<T>::classname = typeid(T).name(); extern template std::string C<int>::classname; [/c] foo.cpp: [c] #include "foo.h" template<> std::string C<int>::classname = "int"; [/c] D.h., C<int>::classname wird in foo.h als explizite Template-Instantiierung deklariert
-
Thread
C: format+va_list für printf zwischenspeichern und (viel) später abarbeiten?
formatierten Text in outputbuffer schreiben. cnt = vsprintf(outputbuffer, format, args); // Formatierten String über RS232 ausgeben. RS232_Write(outpufbuffer, cnt); [/c] Gibt's da was? Vielen Dank im Vorraus
Ich seh keine Möglichkeit die deutlich schneller wäre als ein sprintf. allein schon ein [c] printf("String: %s\nPointer: 0x%x\n",charpointer, charpointer); [/c] ist ein Problem: du hast zweimal denselben wert im va_args, einmal musst du aber ein strcopy (Wohin?) laufen lassen, einmal nur
-
Thread
switch-case mit 4-Byte-Strings
[c] char string[5] = "abcd\0"; if(!strcmp(string, "ABCD")) { } else if(!strcmp(string, "BCDA")) { } else if(!strcmp(string, "DBCA")) { } ... ... [/c]
die Preprozessor ist es egal wo er etwas ersetzt, Fast. Die Frage ist, ob er auch innerhalb von Strings ersetzt: [c] #define f(a) a 'a' "a" f(x) [/c] ergibt beim GNU CPP [c] x 'a' "a" [/c]
-
Thread
Probleme mit pgmspace. ATMega1284P hangt sich durch strcpy_P auf
BadInt() füllen. Das können 0-Bytes vorkommen, oder meist eben auch nicht. Danach kommen dann (falls C++) Adressen der Initialisierungsroutinen für globale Objekte. Dann eventuell benutzte PROGMEN Strings. Letztere würden die Kopierwut von strcpy_P() bremsen, aber da ist es sicher schon zu spät.
Länge muß zusätzlich mitgegeben werden, andernfalls kommt die Länge aus der Quelle, und zwar nach der C-String-Konvention "endet mit '\0'".
-
Thread
Motordrehzahl eingeben Arduino
warum einfach machen, wenn es kompliziert geht: Nimm für die Umwandlung von... ... Integer in String: http://www.cplusplus.com/reference/cstdlib/itoa/ ... String in Integer: http://www.cplusplus.com/reference/cstdlib/atoi/ Ist alles schon in C/C++ vorhanden
Serial.available()) } // void serialEvent() void loop(void) { // was so zu tun ist if(stringComplete) { inSTR_Auswertung(); stringComplete = false; } // if(stringComplete) } // void loop(void) [/c]
-
Thread
Usart (Fleury) Übertragungsprobleme.
all: $(TARGET) uarttest.hex uarttest.eep uarttest.lss size ## Compile uarttest.o: ../uarttest.c $(CC) $(INCLUDES) $(CFLAGS) -c $< uart.o: ../uart.c $(CC) $(INCLUDES) $(CFLAGS) -c $< glcd-Display3000-211.o: ../glcd-Display3000-211.c $(CC) $(INCLUDES) $(CFLAGS) -c $< font_f-5x8
74 00 [c]/* Programmkopf mit Headerdateien*/ #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <string.h> #include <stdio.h>
-
Thread
C# SerialPort aus lesen
reichen mir die ganzen Terminal Programme nicht aus, drum wollte ich es mal mit einem Windows Forms in C# veruchen. Ich habe jetzt ein Programm geschieben wo ich einen String in eine TextBox schreibe und dieser mit Enter drücken an den Microkontroller gesendet wird. Bis hier hin klappt alles. doch nun
ich bin mit c# noch nicht so dicke. wie mach ich das?
-
Thread
Fragen zu C++-Design
jeweils die Namen und Typen(!) auflistet. Mit Makros ginge das, aber wie macht man das sinnvoll in C++? Ich möchte das folgende vermeiden und hätte stattdessen gern eine Schleife: [c] sp<HidlDevice> dev0 = TypeZeroDevice(); if(dev0->isReady()) { mDevices.push_back(dev0); } sp<HidlDevice
HidlProvider::HidlProvider() { MAKE_DEVICE("dev0", TypeZeroDevice); } [/c] Solltest du ganz schnell so etwas wie [c] template<typeename T void register_device(std::string const& name) { sp<HidlDevice> dev = T(); if(dev->isReady() { mDeviceNames.push_back
-
Thread
strtol Problem (Ergebnis ist immer MAX_LONG)
Wimplicit-function-declaration]incompatible implicit declaration of > built-in function 'strcpy' main.c Dann solltes du #include <string.h> noch einbinden.
Also auch so [c] #include "stdlib.h" #include "string.h" int main(void) { char temp[10]; strcpy(temp, "0x000A"); long test = (long)strtol(temp, NULL, 16); if (test == 0) {
-
Thread
C++ Speicherfehler finden
unnötige .Net-Geraffel verzichtet. Schön wäre es, wenn es eine von diesem Geblubber befreite reine C- und C++-Variante des VS2010 gäbe. Ärgerlich und peinlich ist die nach wie vor fehlende C99-Unterstützung.
die oben erwähnten Programme nicht mehr in C schreiben wollen, aber ich konnte damals schlichtweg kein C++, und die mir zur Verfügung stehenden C++-Compiler waren damals auch eher sehr lausig. Da ich Windows als Entwicklungsplattform in absehbarer