Zum Inhalt springen

Problem mit zusammenfügen von Char to Int


Empfohlene Beiträge

Geschrieben

Hallo "Fachinformatiker",

ich bin ein relativ neuer C-Neuling.

Ich hab n Roboter den ich programmiere. Mein Programm hat eine Batterie() Funktion, die ermittelt den Batteriestand.

Desweiteren ein ID für jeden Robo. Jetzt möchte ich den Batteriestand (int) der ID (char) anhängen.

Dieser Vorgang wird in ner While-Schleife wiederholt, aber nur alle 1000mal, aus Performancegründen.

Also grob zusammengefasst: ich will eigentlich nur chars bzw. chars mit int verknüpfen. weiß hier vielleicht einer weiter ???

Zum Problem:

Es kommende Fehlermeldungen:

test.c:66: warning: assignment makes integer from pointer without a cast

test.c:69: warning: passing arg 2 of `itoa' makes pointer from integer without a cast

test.c:70: warning: passing arg 1 of `strcat' makes pointer from integer without a cast

test.c:70: warning: passing arg 2 of `strcat' makes pointer from integer without a cast

test.c:71: warning: passing arg 1 of `SerPrint' makes pointer from integer without a cast

_________________________________

anscheindend wandelt itoa volt nicht in text um, warum?

Hier der Code:


#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include "asuro.h"


int volt, zaehler;

char text;

char test;


int main(void)

{

	Init();


	while(1)

	{

		if(zaehler % 1000 == 0)

		{

			test = "id:001->Bat:";


			volt = Batterie();			

                        itoa(volt, text, 10);

			strcat(test, text);

			SerPrint(test);

		}

		zaehler++;

	}

}

Für Hilfe wäre ich dankbar.

Gruß

VR6

Geschrieben

Ok danke so funzt es.

Nochmal n kleines Verständnisproblem.

In C gibts ja anscheindend Zeichenketten nur als char, also kein Datentyp String.

Wenn ich dann dem Char-Array etwas zuweisen will, muss ich dann immer strcpy nehmen? Anscheindend bin ich C# verwöhnt, wo ich ich nem String einfach n Wert zuweisen kann.

Geschrieben

Ja.

Statt dem itoa würde ich aber einfach sprintf nehmen. Da kannst du das alles genau wie mit printf ausgeben nur das die Ausgabe im String landet.


char test[255];
int i = 5;
sprintf (test,"Der Inhalt %s ist %i","der Variablen i", i);
[/PHP]

Bzw. noch besser statt sprintf ist je nach Entwicklungsumgebung _snprintf oder sprintf_s wo du noch die Größe deines Arrays angeben kannst damit nicht aus versehen darüber hinausgeschrieben wird.

Geschrieben

Aha jetzt versteh ich das solangsam ...

PHP-Code:

char test[255];

int i = 5;

sprintf (test,"Der Inhalt %s ist %i","der Variablen i", i);

So wie ich das sehe wird i in den String davor gepackt und dieser in test, oder?

Und für was steht das %i und %s?

Geschrieben
So wie ich das sehe wird i in den String davor gepackt und dieser in test, oder?
So ähnlich. Der erste Parameter ist der Ziel-String. Der zweite ist der Formatstring, der bestimmt, was und wie in den Zielstring geschrieben wird. Dazu dienen die Formatfelder im Formatstring, das sind diese Dinger mit dem Prozentzeichen.

Hier findest du eine Referenz:

printf - C++ Reference

Die nachfolgenden Parameter werden von links nach rechts den jeweiligen Formatfeldern zugeordnet, und entsprechend in den Zielstring geschrieben.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...