Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo ihr lieben,

ich muss nur ein kleines problem lösen und das gestaltet sich momentan als sehr schwierig. grob gesagt möcht ich nur einen int-wert in einen stringwert übergeben, wobei der int-wert die 10 000 leicht überschreiten können muss, weswegen ich das mit char schonmal nicht machen kann.


...


constant int number;

int feld[];

feld = new int Feld[number];


    for (int s=0; s<number; s++ ){


            feld[s] = s;


        }


ziel dabei ist es namensbezeichnungen für die 10000 objekte zu erzeugen. das objekt 15 soll auch auf feld[15] liegen. ich möchte also machen koennen...

//pseudocode

string 15 = feld[15];

wahrscheinlich geht das fix. in java gibts da glaub ich einfach ne funktion .toString. aber wie gesagt es ist wichtig das ich danach auf jeden in als zugriffwert einen string als namen zurückgegeben werden muss.

hat da irgendwer ne kleine lösung???

:D

gruß sternchen

Geschrieben

Hallo,

Habe ich das richtig verstanden, dass Du ein integer in einen String umwandelt möchtest? Dafür gibts beispielsweise sprintf(). Diese Funktion arbeitet im Prinzip wie printf(), nur dass das Ergebnis nicht auf dem Bildschirm ausgegeben wird sondern in den angegebenen string geschrieben wird:

sprintf(buffer,"%d", meinInt) schreibt "meinInt" in menschenlesbarer Form in "buffer".

Nic

Geschrieben

naja, das hab ich auch ausprobiert. nur wie greife ich dann auf element 2500 zu?

ich muesste auf das 2500ste element zugreifen koennen.

also...

a = string[2500]

und a würde mir den string "2500" liefern.

ich habe dann nämlich 50000 elemente und jedes soll seinen eigenen namen bekommen in aufsteigender reihenfolge von integern.

was meinst du dazu? oder versteh ich dich falsch?

Geschrieben

wenn ich das so mache wie du sagst, also:


                 int size=1000;

		int *Feld;

	         Feld= new int[size];


		int *buffer;

		buffer = new int[size];


		for (int s=0; s<size; s++ ){


		         Feld[s]=s;


			sprintf(buffer[s], "%d", Feld[s]);


			name = buffer[s];


	}

dann krieg ich diese fehlermeldung...

error C2664: 'sprintf' : Konvertierung des Parameters 1 von 'int' in 'char *' nicht moeglich

wat mach ich nur falsch? :confused:

Geschrieben

man so lieb, dass du mir so hilfst :D

also ich hab das versuch aber er schmeisst immer wieder die gleiche fehlermeldung raus. viell kannst du damit ja was anfangen. bin kein genie in c++ :(

------------

error C2664: 'sprintf' : Konvertierung des Parameters 1 von 'char' in 'char *' nicht moeglich

Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

------------

gruß sternchen

Geschrieben

Hallo,

du solltest Dir angewöhnen, den Code zu posten, sonst können wir Dir nicht helfen.

[Glaskugelmode]

Du hast wahrscheinlich buffer = new int; durch etwas der Art buffer = new char; ersetzt. Das löst das Problem abernicht, da Du dann beim sprintf() ein einzelnes char ansprichst, nicht jedoch einen char *. Diesen benötigt sprintf aber als erstes Argument!

[/Glaskugelmode]

Nic

Geschrieben

ach ja nochmal bezüglich der diffusen aufgabenstellung ;o)! also ich will einfach nur einen intWert aus einem feld mit integern auslesen und diesen dann in einen string umwandeln damit ich ihn danach als string benutzen kann. in dem string wollt ich gerne an jeden beliebigen index springen koennen und mit den dort befindenden wert holen.

hoffe dass ich das wenigsten halbwegs gut erklären kann :(

lieben gruß

sternchen

Geschrieben

Hi,


#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int MAX = 100;

int main()
{
int i=0;
char text[MAX];
char feld[MAX][MAX];


for(i =0; i<100; i++)
{
snprintf(text, MAX, "Objekt%i", i);
strcpy(feld[i], text);
}

cout << feld[45] << endl;
}

[/php]

ich weiss auch nicht, ob ich dein Problem richtig verstanden habe, aber vielleicht hilft dir ja mein Code. Ferner gehe ich mal davon aus, dass du C++ benutzt.

Dann würde ich empfehlen, dir mal std::string, std::vector anzugucken, da diese Dinge einem Einsteiger das Leben schon enorm einfacher machen können und auch für dein Problem sinnvoll nutzbar sind.

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