Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.01.2012, 06:01   #1
PotatoCaptain
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 40
По умолчанию изза cin.ignore() не записывает 1 символ

Здравствуйте, проблема такая записываю в файл с помощью getline, получается так что из первого цикла пропускается: "Введите фамилию 1 покупателя" Посоветовали написать cin.ignore() - это помогло, но возникла проблема: в файл начиная со 2 цикла не записывается первая буква фамилии. Что делать, не знаю, помогите.
код
Код:
#include "stdafx.h"
#include "iostream"
#include "fstream"
#include "stdio.h"
#include "string"
#include "windows.h"
using namespace std;
struct BD {string fam, data,  №, cena;};

int _tmain(int argc, _TCHAR* argv[])
{   SetConsoleCP(1251); 
	SetConsoleOutputCP(1251);
	struct BD bd[100];

	char y;
	int x=0,a=0,i=0,n=0,b=0;
ofstream out ("file.txt");
        cout << "Заполнение базы данных"<< endl;
		cout  <<"Введите колличесво покупателей"<< endl;
        cin >> a;
		for (i=0;i<a;i++){
        cout << "Введите фамилию "<<i+1<<" покупателя"<< endl;
       cin.ignore();
		getline(cin,bd[i].fam);
        out<<bd[i].fam<<endl;
		cout << "Введите дату сделки"<< endl;
	       getline(cin,bd[i].data);
        out<<bd[i].data<<endl;
		cout << "Введите идентификационный номер продаваемой квартиры"<<endl;
		getline(cin,bd[i].№);
        out<<bd[i].№<<endl;
		cout << "Введите цену квартиры"<<endl;
		getline(cin,bd[i].cena);
        out<<bd[i].cena<<endl;
		}
        out.close();
		cout << "База данных сохранена в файле: file.txt" << endl;

system("pause");

		
	return 0;
}
чтобы выводилось в консоли русскими буквами поменяйте в свойствах самой консоли шрифт на LusidaConsole
PotatoCaptain вне форума
Старый 09.01.2012, 06:29   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Переместите cin.ignore() под cin >> a;
Код:
cin >> a;
cin.ignore();
for (i = 0....)
netrino вне форума
Старый 09.01.2012, 07:10   #3
PotatoCaptain
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 40
По умолчанию

Да, точно, теперь все работает, спасибо)
PotatoCaptain вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ignore empty cells Olya1985 Microsoft Office Excel 17 03.01.2011 18:36
Не записывает данные в БД Abuhamed PHP 9 16.04.2010 20:57
Не записывает в переменную beemoto Общие вопросы Delphi 22 30.10.2009 11:25
Изза потока зависает программа RNT Общие вопросы Delphi 9 10.07.2009 19:15