Форум программистов, компьютерный форум CyberForum.ru

Запрос номера телефона. Ошибка в программе. - C++

Восстановить пароль Регистрация
 
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
04.06.2012, 15:32     Запрос номера телефона. Ошибка в программе. #1
Добрый день. Подскажите что не так.
Не могу никак понять где ошибка. Программа запрашивает номер телефона в виде (123) 456-789
а потом выводит на экран. А в результате показывает только три первые цифры и скобки.
Например, если ввел номер (123) 456-789 то напечатает (123). Где ошибка?

Код
#include "stdafx.h"
#include "iostream"
#include "clocale"
using namespace std;

class PhoneNumber
{
	friend ostream &operator<<(ostream &output, const PhoneNumber &num);
	friend istream &operator>>(istream &input, PhoneNumber &num);
private:
	char areaCode[4];
	char exchange[4];
	char line[5];
};

ostream &operator<<(ostream &output, const PhoneNumber &num)
{
	output << "(" << num.areaCode << ") " << num.exchange << '-' << num.line;
	
	return output;
}

// (123) 456-789
istream &operator>>(istream &input, PhoneNumber &num)
{
	input.ignore();						// "("
	input.getline(num.areaCode, 4);		// "123"
	input.ignore(2);					// ") "
	input.getline(num.exchange, 4);		// "456"
	input.ignore();						// "-"
	input.getline(num.line, 5);			// 789

	return input;
}


int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL, "russian");

	PhoneNumber phone;

	cout << "Введите номер телефона в виде (123) 456-789: ";
	cin >> phone;
	cout << "Был введен номер телефона: " << phone << endl;



	cout << "\n\n";
	system("pause");
	return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2012, 15:32     Запрос номера телефона. Ошибка в программе.
Посмотрите здесь:

C++ ошибка в программе
C++ При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес.
C++ Ошибка в программе
C++ Запрос вывода порядкового номера каждой записи таблицы
C++ Ошибка в программе
Ошибка в программе C++
C++ При вводе даты рождения и номера телефона в структуру выдает неверные данные
Телефонный справочник: добавление/удаление/поиск номера телефона C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
04.06.2012, 15:50  [ТС]     Запрос номера телефона. Ошибка в программе. #2
Извиняюсь. Вот что программа печатает (123) -
Миниатюры
Запрос номера телефона. Ошибка в программе.  
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
04.06.2012, 20:16     Запрос номера телефона. Ошибка в программе. #3
C++
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
35
36
37
38
39
40
41
42
#include "iostream"
#include "clocale"
#include <string>
using namespace std;
 
class PhoneNumber
{
    friend ostream& operator<<(ostream &output, const PhoneNumber &num);
    friend istream& operator>>(istream &input, PhoneNumber &num);
public:
    string areaCode;
    string exchange_line;
};
 
ostream& operator<<(ostream &output, const PhoneNumber &num)
{
    output<<num.areaCode<<" "<<num.exchange_line;
    return output;
}
 
// (123) 456-789
istream& operator>>(istream &input, PhoneNumber &num)
{
    input>>num.areaCode;
    input>>num.exchange_line;
    return input;
}
 
int main()
{
    setlocale(LC_ALL, "russian");
 
    PhoneNumber phone;
 
    cout << "Введите номер телефона в виде (123) 456-789: ";
    cin >> phone;
    cout << "Был введен номер телефона: " << phone << endl;
 
    cout << "\n\n";
    system("pause");
    return 0;
}
Yandex
Объявления
04.06.2012, 20:16     Запрос номера телефона. Ошибка в программе.
Ответ Создать тему
Опции темы

Текущее время: 08:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru