Forum: Fråga om C++

Forum huvudsida -> Programmering -> Fråga om C++

Sidor: 1

Till botten

The_code 09:55 - 8:e December 2005 | Post #1
Medlem
Inlägg: 28


Skicka PM
Sådär. Jag har faktiskt 2 frågor om c++.

1. Hur kan man kolla om en string är bara siffror?
För jag ska konvertera en string till int. Det blir ju error om det är bokstäver med.

2. Hur kan man sätta in sin egna string till system() funktionen?. Det verkar inte gå.
som t.ex:

cin >> txt;
system(txt);

Detta är ett bra forum har jag märkt. Smiley
//The_code

-------------------------
Pillar med VB.NET, C++ och GameMaker



Celeron 18:29 - 8:e December 2005 | Post #2
Medlem
Inlägg: 418


Skicka PM
1. Jag tror att det finns en funktion som heter isdigit() till char strängar. char strängen får du genom att anropa funktionen c_str();. isdigit() vet jag inte hur den används, men sök på google så hittar du säkert något!
2. Jo, system() tar ju en const char*, inte en string, men genom funktionen c_str() så får du char strängen så du kan göra så här:
  1.  
  2. string txt;
  3. cin >> txt;
  4. system(txt.c_str());


-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Nissebosselasse 19:53 - 8:e December 2005 | Post #3
Medlem
Inlägg: 490


Skicka PM
Jag tänkte på ettan där; ska du konvertera string till int, eller bara kolla om strängen enbart innehåller siffror? I det första fallet har du en funktion som heter atoi (ascii-to-integer, det finns även för de andra datatyperna - atof (float) samt atol (long)). Läs mer på http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_atof.2c_.atoi.2c_._atoi64.2c_.atol.asp

I övrigt gör du som Celeron sa, med anropet av c_str() för att få en pekare till strängens tecken.


string s("234");

float f = atof( s.c_str() );
int i = atoi( s.c_str() );


-------------------------
http://pushingcows.se
Gula Nallen



_0D_0A 18:56 - 9:e December 2005 | Post #4
Medlem
Inlägg: 21


Skicka PM
Om du på ettan bara vill fånga eventuella fel som uppstått på grund utav att användaren skrivit annat än endast siffror borde du kunna köra på något i den här stilen:
  1. int i; // Integer-variabel
  2. cin >> i; // Lagra det som skrivs i variabeln 'i'
  3. if (cin.rdstate() & ios::failbit) // Om det som skrevs in började med en bokstav...
  4. cin.clear(); // ...rensa cin's felflaggor
  5. cin.rdbuf()->pubsync(); // Töm cin's buffert



Senast redigerad 18:56 - 9:e December 2005


Sidor: 1

Forum huvudsida -> Programmering -> Fråga om C++
Atom feed

Du får inte posta i den här tråden | Till toppen