the Hellboard
Zum Portal Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Portal » the Hellboard » Computer und Co » Software » Coder Forum » C++ Problem: Wie konvertiere ich einen String in eine Zahl? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen C++ Problem: Wie konvertiere ich einen String in eine Zahl?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Three of Five Three of Five ist männlich
Borg


images/avatars/avatar-1.gif

Dabei seit: 01.06.2002
Beiträge: 4.898
Herkunft: Unimatrix 01

Level: 58 [?]
Erfahrungspunkte: 39.198.599
Nächster Level: 41.283.177

2.084.578 Erfahrungspunkt(e) für den nächsten Levelanstieg

Achtung C++ Problem: Wie konvertiere ich einen String in eine Zahl? Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

jo, siehe topic
wie geht das von statten, gibts da schon ne vorgefertigte funktion wie z.b. unter delphi?
da ich beim programmaufruf irgendwie nur strings mit übergeben kann
int main (int argc, char *argv[]) {
argv[x] is dann immer ein wort
und ich wollte dort halt ne zahl übergeben
und wenn ich da aber nur ein wort, also nen string bekomm, muss ich den zum rechnen und so ja umwandeln
gibts da also schon was fertiges oder darf ich mir da selber eine headerdatei bzw ne funktion erbrühten die das leistet?

für diese bräuchte ich dann wohl auch noch ein paar vorschläge, wie das am dümmsten zu lösen wäre

mfg, martin

__________________
We are the Borg!
Resistance is futile!


the hellboard - join the community now!
maddin.org - Full Metal Pictures - Konzertbilder und mehr
18.01.2005 18:27 Three of Five ist offline E-Mail an Three of Five senden Homepage von Three of Five Beiträge von Three of Five suchen Nehmen Sie Three of Five in Ihre Freundesliste auf
Knolle Knolle ist männlich
Forenbesetzer


images/avatars/avatar-795.jpg

Dabei seit: 01.06.2002
Beiträge: 1.395
Herkunft: da hinten

Level: 50 [?]
Erfahrungspunkte: 11.163.954
Nächster Level: 11.777.899

613.945 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

was ist ne zahl?
fürn integer:
atoi

sponsored by google

__________________
"Und ein sozialkritisches Schlagzeugsolo später ist es soweit: Making disco a threat again. Wow. Und zu 72% geschmacksicher erklärst du jedem, dass ultramarinblau bedeutender ist als aquamarinblau. Und alle glauben es dir. Vorausgesetzt: die Nasenscheidewände halten."
- chicks with dicks - free porn -
18.01.2005 18:53 Knolle ist offline Homepage von Knolle Beiträge von Knolle suchen Nehmen Sie Knolle in Ihre Freundesliste auf
Three of Five Three of Five ist männlich
Borg


images/avatars/avatar-1.gif

Dabei seit: 01.06.2002
Beiträge: 4.898
Herkunft: Unimatrix 01

Level: 58 [?]
Erfahrungspunkte: 39.198.599
Nächster Level: 41.283.177

2.084.578 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

danke, allerdings hab ich nun ein prob, es geht net so wie ich es mir vorstelle, event habsch aber auch nur nen dicken denkfehler in meinem code

maddin@omega:~/development/cpp/uebungen$ g++ -o zeichencode zeichencode.cc
zeichencode.cc: In function `int main(int, wchar_t**)':
zeichencode.cc:10: error: invalid conversion from `wchar_t*' to `int'

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;

int main(int argc, wchar_t *argv[]) {
	int atoi (const wchar_t* argv[1]);
	int code;
	wchar_t zeichen;
	code = argv[1];
	zeichen = code;
	code = zeichen;
	cout << "Sie haben folgenden Zeichencode eingegeben: " << code << endl;
	cout << "Dieser entspricht diesem Unicode Zeichen: " << zeichen << endl
		<< "bzw diesem HEX Wert: " << hex << uppercase << code << endl
		<< "bzw diesem Octal Wert: " << oct << code << endl;
	return 0;
   }


hat jemand ne idee?

nachtrag: sieht ganz danach aus das das garkein normaler string is, aber was is char* bzw wchar_t* dann?
und wie kann man es umwandeln? *fragenüberfragen*

__________________
We are the Borg!
Resistance is futile!


the hellboard - join the community now!
maddin.org - Full Metal Pictures - Konzertbilder und mehr
18.01.2005 20:04 Three of Five ist offline E-Mail an Three of Five senden Homepage von Three of Five Beiträge von Three of Five suchen Nehmen Sie Three of Five in Ihre Freundesliste auf
Lord Amiziras Lord Amiziras ist männlich
Grünschnabel


images/avatars/avatar-1063.jpg

Dabei seit: 01.06.2002
Beiträge: 42

Level: 31 [?]
Erfahrungspunkte: 336.126
Nächster Level: 369.628

33.502 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

lies dir nochma das beispiel durch das bei dem link von Knolle zu finden ist:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
/* atoi example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int i;
  char szInput [256];
  printf ("Enter a number: ");
  gets ( szInput );
  i = atoi (szInput);
  printf ("Value entered is %d, and its double %d",i,i*2);
  return 0;
}




um deinen code mal ein wenig anzupassen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
#include <iostream>
#include <iomanip>
#include <cstdlib>

// eventuell musst du die noch mit einbinden kann aber sein das die cstdlib reicht...
// bin mir da grad nich so sicher...
#include <stdlib.h>

using namespace std;

int main(int argc, wchar_t *argv[])
{
// die umwandlung von argv[1] in "int"
   int code;
   code = atoi(argv[1]);

// den rest hmm naja lass ich mal unverändert..
   wchar_t zeichen;
   zeichen = code;
   code = zeichen;

   cout << "Sie haben folgenden Zeichencode eingegeben: " << code << endl;
   cout << "Dieser entspricht diesem Unicode Zeichen: " << zeichen << endl
		<< "bzw diesem HEX Wert: " << hex << uppercase << code << endl
		<< "bzw diesem Octal Wert: " << oct << code << endl;
	return 0;
   }


__________________
42

Zitat:
Im Herzen der Menschheit existiert eine Krankheit... Ihr Symptom ist Hass, Ihr Symptom ist Zorn. Ihr Symptom ist Krieg. Diese Krankheit ist die menschliche Emotion.

19.01.2005 11:24 Lord Amiziras ist offline E-Mail an Lord Amiziras senden Beiträge von Lord Amiziras suchen Nehmen Sie Lord Amiziras in Ihre Freundesliste auf
Three of Five Three of Five ist männlich
Borg


images/avatars/avatar-1.gif

Dabei seit: 01.06.2002
Beiträge: 4.898
Herkunft: Unimatrix 01

Level: 58 [?]
Erfahrungspunkte: 39.198.599
Nächster Level: 41.283.177

2.084.578 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

soweit war ich inzwischen in der schule und so auch schon gekommen, allerdings ergibt sich nun ein folgendes problem?
wie gebe ich das zeichen aus?
also für zeichen unter 256 gehts
aber danach gibt aber zeichen 306 wird z.b. als das selbe zeichen wie 56 ausgeben, nämlich als 2
obwohl ich als datentyp ein wchar_t habe und utf-8 als systemzeichensatz
cout.put(zeichen) mag auch net so wirklich :/

__________________
We are the Borg!
Resistance is futile!


the hellboard - join the community now!
maddin.org - Full Metal Pictures - Konzertbilder und mehr
19.01.2005 16:42 Three of Five ist offline E-Mail an Three of Five senden Homepage von Three of Five Beiträge von Three of Five suchen Nehmen Sie Three of Five in Ihre Freundesliste auf
MoD3000
Hoffnungsloser Fall


images/avatars/avatar-25.jpg

Dabei seit: 25.09.2002
Beiträge: 3.510

Level: 56 [?]
Erfahrungspunkte: 27.681.855
Nächster Level: 30.430.899

2.749.044 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

poste oder edite mal, was jetzt genau bei dir steht.
19.01.2005 19:14 MoD3000 ist offline Homepage von MoD3000 Beiträge von MoD3000 suchen Nehmen Sie MoD3000 in Ihre Freundesliste auf
Three of Five Three of Five ist männlich
Borg


images/avatars/avatar-1.gif

Dabei seit: 01.06.2002
Beiträge: 4.898
Herkunft: Unimatrix 01

Level: 58 [?]
Erfahrungspunkte: 39.198.599
Nächster Level: 41.283.177

2.084.578 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ok, mom
also das hab ich atm

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
#include <iostream>
#include <iomanip>
#include <cstdlib>
#define PAUSE cin.sync();cin.clear();cin.get();
using namespace std;

int einlesen();

int main(int argc, char* argv[]) {
	unsigned int code = 0;
	unsigned wchar_t zeichen = 0;
	switch (argc) {			// Bei keinem übergebenen Parameter einen Parameter
		case 1: code = einlesen();	// einlesen, bei 2 Parametern Fehlermeldung
			 	break;
	 	case 2: code = atoi (argv[1]); // String in Int umwandeln (ENDLICH)
			 	break;
		}
	zeichen = code;
	code = zeichen;
	cout << "Sie haben folgenden Zeichencode eingegeben: " << code << endl;
	cout << "Dieser entspricht diesem Unicode Zeichen: ";
	cout.put(zeichen);
 	cout << endl << "bzw diesem HEX Wert: " << hex << uppercase << code << endl
		 << "bzw diesem Octal Wert: " << oct << code << endl;
	return 0;
   }
   
int einlesen() {
	int zahl;
	cout << "Bitte einen Zeichencode eingeben: ";
	cin >> zahl;
	return zahl;
}


__________________
We are the Borg!
Resistance is futile!


the hellboard - join the community now!
maddin.org - Full Metal Pictures - Konzertbilder und mehr
19.01.2005 19:42 Three of Five ist offline E-Mail an Three of Five senden Homepage von Three of Five Beiträge von Three of Five suchen Nehmen Sie Three of Five in Ihre Freundesliste auf
MoD3000
Hoffnungsloser Fall


images/avatars/avatar-25.jpg

Dabei seit: 25.09.2002
Beiträge: 3.510

Level: 56 [?]
Erfahrungspunkte: 27.681.855
Nächster Level: 30.430.899

2.749.044 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Three of Five
ok, mom
also das hab ich atm

code:
1:
2:
3:
4:
	zeichen = code;
	code = zeichen;

was macht das denn?
19.01.2005 23:02 MoD3000 ist offline Homepage von MoD3000 Beiträge von MoD3000 suchen Nehmen Sie MoD3000 in Ihre Freundesliste auf
Three of Five Three of Five ist männlich
Borg


images/avatars/avatar-1.gif

Dabei seit: 01.06.2002
Beiträge: 4.898
Herkunft: Unimatrix 01

Level: 58 [?]
Erfahrungspunkte: 39.198.599
Nächster Level: 41.283.177

2.084.578 Erfahrungspunkt(e) für den nächsten Levelanstieg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

zeichen = code;
weißt dem wchar_t wert zeichen den intwert von code zu, welcher per kommandozeilenparameter eingelesen wurde
code = zeichen; reduziert den intwert von code auf den von zeichen, falls zeichen überläuft (eigendlich nur bei char, nich bei wchar_t relevant)

__________________
We are the Borg!
Resistance is futile!


the hellboard - join the community now!
maddin.org - Full Metal Pictures - Konzertbilder und mehr
20.01.2005 16:27 Three of Five ist offline E-Mail an Three of Five senden Homepage von Three of Five Beiträge von Three of Five suchen Nehmen Sie Three of Five in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Thema bewerten: 

nicht lesenswert nicht lesenswert 

1

2

3

4

5

6

7

8

9

10
 lesenswert lesenswert

Portal » the Hellboard » Computer und Co » Software » Coder Forum » C++ Problem: Wie konvertiere ich einen String in eine Zahl?

Impressum Netiquette

Powered by Burning Board 2.3.6 © 2001-2007 WoltLab GmbH