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

Ein char ist nur ein einzelnes Zeichen. Wenn du in C mit Zeichenketten arbeiten willst, musst du char-Arrays verwenden. Du bist übrigens dafür verantwortlich, dass diese Arrays groß genug sind.

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...