Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 17.5.2006, 14:08   #1
Arakis
Član
 
Član od: 12.12.2005.
Lokacija: Azeroth
Poruke: 84
Zahvalnice: 0
Zahvaljeno jedanput na jednoj poruci
Unhappy Kako string to int u Microsoft Visual-u C++ 2003

#include "stdafx.h"
#include <iostream>

int main()
{
int a = 0;
std::string b = "12";

return 0;
}

Posto a=b naravno neradi, kako da b konvertujem u int?
Naravno gledao sam u helpu ima funkcija atoi i pise za nju atoi - Convert string to int, ali kada probam a=atoi( b ) i kada kompajliram dobijem poruku Projects\dsf\dsf.cpp(13): error C2664: 'atoi' : cannot convert parameter 1 from 'std::string' to 'const char *'. Tu pise da atoi funkcija trazi char a ne string a u helpu pise da trazi string!Ovo je malo zbunjujuce...
Arakis je offline   Odgovor sa citatom ove poruke
Stara 17.5.2006, 14:31   #2
seymourc64
Član
 
Član od: 5.12.2005.
Lokacija: Sombor
Poruke: 245
Zahvalnice: 7
Zahvaljeno 31 puta na 24 poruka
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

Pre svega...Atoi je funkcija iz standardne biblioteke c jezika i kao takva radi sa obicnim ascii stringovima(tj. nizom karaktera gde je poslednji znak 0).String je klasa,pa samim atoi ne moze da direktno prebaci vrednost iz promenljive b(koja kod tebe predstavlja objekat,odnosno instanciranu klasu string) u integer.Klasa string poseduje metodu c_str() koja vraca obican c-ovski ascii string.Evo ti resenje za tvoj primer :
Kod:
  #include "stdafx.h"
  #include <string>
  
  int _tmain(int argc, _TCHAR* argv[])
  {  
     int a;
     std::string b;

     b = "123";
     a = atoi(b.c_str());
     printf("%ld\n",a);     
     system("pause");
     return 0;
}
seymourc64 je offline   Odgovor sa citatom ove poruke
Stara 17.5.2006, 14:36   #3
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.110
Zahvalnice: 649
Zahvaljeno 1.343 puta na 685 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

Kod:
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
char buffer[80];
cout << "Enter a number: ";
cin >> buffer;
int number;
number = atoi(buffer);
cout << "Here's the number: " << number << endl;
system("pause");
return 0;
}
Ovo bi trebalo da radi.
Andross je offline   Odgovor sa citatom ove poruke
Stara 17.5.2006, 14:43   #4
Arakis
Član
 
Član od: 12.12.2005.
Lokacija: Azeroth
Poruke: 84
Zahvalnice: 0
Zahvaljeno jedanput na jednoj poruci
Talking Re: Kako string to int u Microsoft Visual-u C++ 2003

Hvala obojici!
U Delphi-ju je bilo prostije a=StrToInt(b)
Arakis je offline   Odgovor sa citatom ove poruke
Stara 17.5.2006, 14:52   #5
seymourc64
Član
 
Član od: 5.12.2005.
Lokacija: Sombor
Poruke: 245
Zahvalnice: 7
Zahvaljeno 31 puta na 24 poruka
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

Stvar je u tome da je string u Pascalu(a samim tim i Delphiju) obican tip podataka,a u c++ string je klasa.Moj savet ti je da detaljnije naucis teoriju i sve ce ti biti jasnije.Inace u Androssovom primeru se radi sa obicnim ascii stringom.Moja preporuka je da ipak koristis string klasu.
seymourc64 je offline   Odgovor sa citatom ove poruke
Stara 18.5.2006, 2:12   #6
priest (of_the_moon)
Član
 
Član od: 4.3.2006.
Lokacija: grad u oblacima
Poruke: 288
Zahvalnice: 1
Zahvaljeno 5 puta na 4 poruka
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

Citat:
seymourc64 kaže:
Moja preporuka je da ipak koristis string klasu.
Ja bih dodao ovde:
... dok ne naučiš dobro da barataš sa (char za ascii, short za unicode) nizovima i funkcijama za njihovu manipulaciju.
priest (of_the_moon) je offline   Odgovor sa citatom ove poruke
Stara 18.5.2006, 13:39   #7
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

Citat:
seymourc64 kaže:
...u c++ string je klasa....
Čekaj malo... String u C/C++ je niz podataka tipa char ( iliti, string je zapravo podatak tipa char* ). Sa druge strane , u okviru STL ( Standard Template Library ) postoji klasa string, za lakši rad sa stringovima ( niskama, rečima , whatever ) . A STL nije C++ !

Je li ovo dobro, ili sam ja nešto pobrkao?
M.Silenus je offline   Odgovor sa citatom ove poruke
Stara 18.5.2006, 18:34   #8
seymourc64
Član
 
Član od: 5.12.2005.
Lokacija: Sombor
Poruke: 245
Zahvalnice: 7
Zahvaljeno 31 puta na 24 poruka
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

M Silenius
U pravu si i nisi pobrkao.STL nije deo C++ jezika,vec samo postoji implementacija i za c++.Slucajno napravih previd...
Inace std::string je specijalizacija std::basic_stringa.Cini mi se da je covek ipak hteo pomoc oko std::stringa,jer ga interesuje OO koncept.Koriscenje STL,u tom slucaju,se namece kao imperativ.
seymourc64 je offline   Odgovor sa citatom ove poruke
Stara 20.5.2006, 15:03   #9
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: Kako string to int u Microsoft Visual-u C++ 2003

A , dobro je ...

Hvala!
M.Silenus je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Microsoft Visual C++ Runtime Library? Henry Townsend Programiranje 3 8.5.2009 16:57
Service Pack 2 nedođija! holodoc Operativni sistemi 50 19.11.2006 17:14
Microsoft Visual Basic 2005 styx Programiranje 2 11.4.2006 13:34
Microsoft Visual Studio 6.0 Predrag Programiranje 14 4.3.2006 20:52


Sva vremena su po Griniču +2 h. Sada je 13:27.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com