Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
#1

Не хочет работать cin.getline - C++

28.04.2017, 10:34. Просмотров 201. Ответов 17
Метки нет (Все метки)

C++
1
cin.getline(comp.processor, 50);
Должно работать до энтера (в другом вижуале нормально работает), а в 2015 не работает без трех аргументов.. А мне именно до энтера надо..
Если делать так:
C++
1
cin.getline(comp.processor, 50, '.');
То все работает корректно
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2017, 10:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не хочет работать cin.getline (C++):

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода - C++
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть какие-нибудь замечания, то просьба написать что не...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами - C++
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с тремя параметрами, как из потока достать...

Отличие функции cin.get и cin.getline - C++
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get считывает символ разрыва строк и оставляет...

Отличие getline() от cin.getline() - C++
Чем отличается getline() от cin.getline() ?

getline(cin, str) и cin>> - C++
Добрый день. Есть код: ... string str; int N; cin>> N; getline(cin, str); cout<<str<<endl; //Выводит: <пустота> ...

Cin вместо cin.getline - C++
#include <stdlib.h> #include <string.h> #include <fstream> using namespace std; int get_int(int default_value); char name; ...

17
DemolitionMan
99 / 155 / 47
Регистрация: 06.04.2016
Сообщений: 992
28.04.2017, 10:39 #2
А что такое comp.processor?
0
Даценд
Модератор
Эксперт .NET
4037 / 3876 / 1952
Регистрация: 20.04.2015
Сообщений: 7,040
28.04.2017, 10:40 #3
tanyalev,
C++
1
std::getline(std::cin, comp.processor);
0
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
28.04.2017, 10:43  [ТС] #4
Я использую вначале using namespace std

Добавлено через 1 минуту
Есть структура computer
comp.processor типа computer
0
Даценд
Модератор
Эксперт .NET
4037 / 3876 / 1952
Регистрация: 20.04.2015
Сообщений: 7,040
28.04.2017, 10:49 #5
Цитата Сообщение от tanyalev Посмотреть сообщение
Я использую вначале using namespace std
Зря. Но если настаиваете, то попробуйте:
C++
1
getline(cin, comp.processor);
Цитата Сообщение от tanyalev Посмотреть сообщение
Есть структура computer
comp.processor типа computer
Это, наверное, comp типа computer. А какого типа поле processor этой структуры?
0
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
28.04.2017, 10:51  [ТС] #6
Типа char
0
Даценд
Модератор
Эксперт .NET
4037 / 3876 / 1952
Регистрация: 20.04.2015
Сообщений: 7,040
28.04.2017, 11:13 #7
Цитата Сообщение от tanyalev Посмотреть сообщение
Типа char
C++
1
cin >> comp.processor;
0
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
28.04.2017, 13:34  [ТС] #8
Мне же нужно, чтобы в переменную записывались символы, считая пробелы, то есть до энтера. Такой вариант не подходит.
0
nd2
2821 / 2391 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
28.04.2017, 13:37 #9
Цитата Сообщение от tanyalev Посмотреть сообщение
Типа char
Какой char? Это твоя структура?
C++
1
2
3
4
5
6
7
typedef struct
{
    char processor[25];
    char plata[25];
    float chastota;
    int operativa;
} computer;
Добавлено через 1 минуту
Цитата Сообщение от tanyalev Посмотреть сообщение
Не хочет работать cin.getline
Код показывай.
0
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
28.04.2017, 13:49  [ТС] #10
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <iomanip>
#include <locale.h>
#include <fstream>
#include <string.h>
using namespace std;
 
typedef struct
{
    char processor[50], plata[4];
    float chastota;
    int operativa;
} computer;
 
 
void punkt1()
{
    int i, N, otvet, reshenie;
    computer comp;
    setlocale(LC_ALL, "Rus");
 
    cout << "Создание базы данных" << endl;
    cout << "Введите количество компьютеров, которые хотите добавить в базу данных: ";
    cin >> N;
 
    ofstream file_comp("Program.txt", ios::binary);
 
    for (i = 0; i < N; i++)
    {
        cout << "Введите информацию про " << i + 1 << " компьютер:" << endl;
        cout << "Название процессора:";
        cin.getline(comp.processor, 50);
.........
0
nd2
2821 / 2391 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
28.04.2017, 13:52 #11
Цитата Сообщение от tanyalev Посмотреть сообщение
C++
1
cin >> N;
C++
1
(cin >> N).get();
0
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
28.04.2017, 13:54  [ТС] #12
Какая разница в записях? У меня с этой переменной проблем нет. Но почему-то так работает.
0
tanyalev
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 51
28.04.2017, 13:58  [ТС] #13
Опять таки.. Второе название не хочет работать.
0
Миниатюры
Не хочет работать cin.getline  
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
28.04.2017, 13:59 #14
Разница в том, что при записи cin >> N в потоке остаётся символ перевода строки '\n', который кушает следующий std::getline.
0
nd2
2821 / 2391 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
28.04.2017, 14:00 #15
Цитата Сообщение от tanyalev Посмотреть сообщение
Какая разница в записях? У меня с этой переменной проблем нет. Но почему-то так работает.
Меньше рассуждай, если не понимаешь.
Цитата Сообщение от tanyalev Посмотреть сообщение
Второе название не хочет работать.
Кода больше показывай, что огрызки выкладываешь? Я же не вижу, что там дальше в цикле вводится, и как. Наверное, опять ввод через cin >> есть.
0
28.04.2017, 14:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2017, 14:00
Привет! Вот еще темы с ответами:

Не работает ни cin.Get(), ни cin.Getline() - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include &quot;windows.h&quot; #include &quot;string.h&quot; using namespace::std; const...

cin.getline и cin.ignore - C++
Есть кусок кода в котором не могу разобраться. Если cin.ignore() есть, то теряется первый вводимый символ начиная со второго входа в for....

cin.getline - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #define N 100 using namespace std; struct book { int page; char str; }...

cin.getline() - C++
Вопрос заключается в следующем, собственно программа отказывается выполнять cin.getline(... , ...); (... - аргументы) в начале своей ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru