Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713

Потоки. Ввод данных.

14.08.2011, 15:06. Показов 1655. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если согласится на ввод второго человека, пропускается ввод его имени... вроде ввод все правильно, не знаю в чем беда
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
43
44
45
46
47
#include"stdafx.h"
#include <iostream>
using namespace std; 
 
class NameDataSet{
public:
    char FirthName[128];
    char LastName[128];
    int creditCard;
};
 
void getData(NameDataSet& cl)
{
    cout<<"Vvedite Familiu: ";
    cin.getline(cl.FirthName,128);
    cout<<"Vvedite Imya: ";
    cin.getline(cl.LastName,128);
    cout<<"Vvedite nomer kreditnoi karti: ";
    cin>>cl.creditCard;
 
}
 
void outData(NameDataSet& cl)
{
    cout <<endl<<cl.FirthName<<" "<<cl.LastName<<" "<<cl.creditCard;
}
int main()  
{
    const int max=20;
    NameDataSet nds[max]; //обьявление класса
    int count=0;
    char ch;
    do
    {
        count++;
        getData(nds[count-1]);
        cout<<endl<<"Vvesti es4e odnogo 4eloveka? Y or N?: ";
        cin>>ch;
    }while(tolower(ch)!='n' && count<=max);
    
    system("cls");
    for(int i=0;i<count;i++)
        outData(nds[i]);
 
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2011, 15:06
Ответы с готовыми решениями:

Ввод-вывод, потоки
Где лучше всего описано, как работает система вводы-вывода в C++ и что такое потоки? И желательно что-нибудь почитать про систему...

Потоки. Бинарный ввод/вывод
Нужно написать бинарный вывод в файл. По учебнику вроде бы что-то в этом роде: ofstream f(&quot;test.bin&quot;, std::ios::binary); ...

Потоки. Ввод-вывод. Ошибка на этапе компиляции.
#include &lt;windows.h&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; void main() { char...

12
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
14.08.2011, 15:10
Ваш код не смотрел, но попробуйте напсать cin.get(); перед вводом этого имени: "пропускается ввод его имени...", скорее всего после предидущего ввода в потоке остался символ '\n'.
0
56 / 56 / 16
Регистрация: 01.08.2011
Сообщений: 141
14.08.2011, 15:18

Не по теме:

Да у меня такаеже проблема была.


В строке которую ты вводишь есть пробелы? если нет то можешь через cun>>...
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
14.08.2011, 15:26  [ТС]
Извиняюсь, после ввода 1 человека и последущих людей, пропускается фамиля, тоесть 1 член класса.
Нет, не помогло. Последний ввод был ввод цифр в целочисленное значение...
0
56 / 56 / 16
Регистрация: 01.08.2011
Сообщений: 141
14.08.2011, 15:28
ну или если хочешь с getline вот тебе твоя функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void getData(NameDataSet& cl)
{
        cin.sync();
        cout<<"Vvedite Familiu: ";
        cin.getline(cl.FirthName,128);
        cin.sync();
        cout<<"Vvedite Imya: ";
        cin.getline(cl.LastName,128);
        
        cout<<"Vvedite nomer kreditnoi karti: ";
        cin>>cl.creditCard;
 
}
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
14.08.2011, 15:28  [ТС]
Цитата Сообщение от Ree.exe Посмотреть сообщение

Не по теме:

Да у меня такаеже проблема была.


В строке которую ты вводишь есть пробелы? если нет то можешь через cun>>...
Нет пробелов, но если бы были? не впервой тоже сталкиваюсь, и хочу все-таки разобратся в чем тут дело...
0
14.08.2011, 15:30

Не по теме:

Пост выше, все как ты хочешь через cin.getline()

1
 Аватар для m1Rr0r
250 / 232 / 46
Регистрация: 05.02.2010
Сообщений: 3,288
14.08.2011, 17:15
cin.clear();

Добавлено через 2 минуты
как я понимаю дело в "ентер"е после ввода строки с именем или фамилией в потоке сидит код кнопки етнер, и при следующем вызове cin забирает его, вместо возможности ввести что то новое.
хотя могу и ошибаться в с++ не оч )
попробуй очищать поток cin
0
14.08.2011, 19:00

Не по теме:

Зачем класс только с открытыми переменными? Классы (если верить книгам) созданы для того, чтобы ограничивать доступ к некоторым членам этого класса. Доступ к ним должен осуществляться через открытые функции этого же класса. Логичней было бы использовать структуру в данном случае, imho

0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
14.08.2011, 21:46  [ТС]
Цитата Сообщение от soon Посмотреть сообщение

Не по теме:

Зачем класс только с открытыми переменными? Классы (если верить книгам) созданы для того, чтобы ограничивать доступ к некоторым членам этого класса. Доступ к ним должен осуществляться через открытые функции этого же класса. Логичней было бы использовать структуру в данном случае, imho

В данно случает, это был просто пример с книги, а так да, полсностью согласен, структура гораздо удобнее была бы

Добавлено через 6 минут
Цитата Сообщение от m1Rr0r Посмотреть сообщение
cin.clear();

Добавлено через 2 минуты
как я понимаю дело в "ентер"е после ввода строки с именем или фамилией в потоке сидит код кнопки етнер, и при следующем вызове cin забирает его, вместо возможности ввести что то новое.
хотя могу и ошибаться в с++ не оч )
попробуй очищать поток cin
А вот cin.clear() - не помогает, помогло cin.sync()
0
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 22:08
Цитата Сообщение от Aloir Посмотреть сообщение
полсностью согласен, структура гораздо удобнее была бы
Ну почему же? А если getData и outData сделать функциями-членами? У вас и так что-то вроде thiscall выходит И на счёт выигрыша в удобности - сомневаюсь... Что так, что так.
0
14.08.2011, 22:23

Не по теме:

Я не говорил, что будет удобнее. Просто структуры, как правило, делаются открытыми, и, дабы не нарушать это правило, предложил использовать структуру, если необхдимо сохранить доступность переменных. Если же нет, то кравивее будет сделать все одним классом, со скрытыми переменными и открытыми функциями.
Оставим это на усмотрение ТС ;)

0
15.08.2011, 00:47

Не по теме:

Цитата Сообщение от soon Посмотреть сообщение

Не по теме:

Зачем класс только с открытыми переменными? Классы (если верить книгам) созданы для того, чтобы ограничивать доступ к некоторым членам этого класса. Доступ к ним должен осуществляться через открытые функции этого же класса. Логичней было бы использовать структуру в данном случае, imho

а в чем уж такая глобальная разница класс или структура, если в с++ они отличаются всего-лишь доступом по-умолчанию?)
да и классы это в стиле с++, ведь структуры, оставлены для совместимости с С=)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.08.2011, 00:47
Помогаю со студенческими работами здесь

Потоки. Ввод элементов в массив через пробельный символ
Ребят, как ввести десятичные числа в массив через пробел? Допустим, есть массив Arr, я ввожу: 250 5 77 и элементы принимают соответственно...

Потоки данных. Ввод-вывод. Java 2
Следует модифицировать программу-шаблон, преобразующую файл с двоичными данными в текстовую форму, дополнив ее методами и добавить вывод...

Байтовые и символьные потоки. Ввод-вывод
здраствуйте, сегодня на программирование начали изучать работы с файлами, понял как читать и записывать, но не понял как работать с битами...

Java 2 Байтовые и символьные потоки. Ввод-вывод
Изменить программу, поместив в строку 13 операторы,которые меняют местами второй и третий биты байта. При преобразовании следует...

Потоки данных, как осуществить передачу данных в label с таймера
Работал над проектом, но внезапно появилась проблема суть которой я понял, но не понимаю как её решить в моих масштабах. Суть проблемы:...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru