Narode treba mi pomoc. Totalno sam se izgubio. Imam sledeci kod sa operator overloading, glup program, znaci uzima broj telefona, tipa (xxx) xxx-xxxx, e sad kad hocu da proverim svaki karatker ponaosob, da vidim da li je stavio otvorenu zagradu ( pre pocetka pozivnog ili ne ...
zbunim se. mislim ovo mi je lako da uradim sa stringovima, ali me zbunjuje ovaj kod. ako neko ima vremena da mi pomogne bio bih zahvalan.
znaci treba mi hint: ako neko recimo umesto ovog nacina (123)123-4567
napise ovaj broj 123-456-7890 kako da proverim svaki character ali da ga ne izgubim.
ako uzmem recimo promenljivu tipa
char checkThis;
i onda
input >> setw(1) >> checkThis;
if (checkThis == '(') {
// on mi je vec pojeo prvi karakter, tako da nemogu vise da se vratim na njega
nadam se da ste me razumeli.
evo koda,pa ako moze neko da proba i da mi pomogne
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
using std::ostream;
using std::istream;
#include <iomanip>
using std::setw;
class PhoneNumber {
friend ostream &operator<<( ostream&, const PhoneNumber & );
friend istream &operator>>( istream&, PhoneNumber & );
private:
char areaCode[ 4 ]; // 3-digit area code and null
char exchange[ 4 ]; // 3-digit exchange and null
char line[ 5 ]; // 4-digit line and null
};
// Overloaded stream-insertion operator (cannot be a member function if we // would like to invoke it with cout << somePhoneNumber;).
ostream &operator<<( ostream &output, const PhoneNumber &num )
{
output << "(" << num.areaCode << ") "
<< num.exchange << "-" << num.line;
return output; // enables cout << a << b << c;
}
istream &operator>>( istream &input, PhoneNumber &num )
{
input.ignore();
input >> setw( 4 ) >> num.areaCode; // input area code
input >> setw(2) >> checkString;
if (checkString == ')')
input >> setw( 4 ) >> num.exchange; // input exchange
input.ignore( ); // skip dash (-)
input >> setw( 5 ) >> num.line; // input line
return input; // enables cin >> a >> b >> c;
}
int main( )
{
PhoneNumber phone; // create object phone
cout << "Enter phone number in the form (123) 456-7890:\n";
// cin >> phone invokes operator>> function by
// issuing the call operator>>( cin, phone ).
cin >> phone;
// cout << phone invokes operator<< function by
// issuing the call operator<<( cout, phone ).
cout << "The phone number entered was: " << phone << endl;
return 0;
}
Hvala
Uros