1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 50
1

При выводе COUT стирает первую букву

12.10.2015, 18:31. Показов 4174. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема: при выводе информации о проданных машинах, первая буква названия первой (и только первой, все последующие выводятся нормально) пропадает. На скрине видно. В чем проблема?

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct Auto
{
    char *marka;
    double cost;
    int kolvo;
};
 
void Input(Auto *a)
{
    cout << "Введите марку автомобиля: ";
    a->marka = new char[20];
 
    cin.get();
    cin.getline(a->marka, 20);
 
    cout << "Введите стоимость: ";
    cin >> a->cost;
 
    cout << "Введите количество: ";
    cin >> a->kolvo;
 
    cout << endl;
}
 
void Sold(const Auto *a)
{
    if (a->kolvo == 0)
    {
        cout << "Автомобили " << a->marka << " распроданы" << endl;
    }
}
 
void Free(Auto a[], int n)
{
    for (int i(0); i < n; i++)
    {
        delete [] a[i].marka;
    }
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    Auto m[3];
 
    for (int i(0); i < 3; i++)
    {
        cout << "Новая марка " << endl;
        Input(&m[i]);
    }
 
    for (int i(0); i < 3; i++)
    {
        Sold(&m[i]);
    }
    
    Free(m, 3);
 
    _getch();
    return 0;
}
Миниатюры
При выводе COUT стирает первую букву  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2015, 18:31
Ответы с готовыми решениями:

Нет пробелов при выводе в cout
В чем ошибка, почему нету пробелов когда выход проходит в cout? Помогите пожалуйста. #include...

Использование функции при выводе в cout
Объясните, пожалуйста, почему так выводит 1 0. int f(int&amp; a){ return ++a; } int main(){ int...

Не работает перегрузка операторов при выводе в cout
написал свой класс ComplexNumber. перегрузил для него операторы +, -, *, /, &lt;&lt;. конструкции вида ...

Введенная по getche строка стирается с экрана при выводе в cout
Когда ввожу число, то в консоли стирается запись об &quot;Input a number: 123456&quot; и показывается только...

4
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
12.10.2015, 18:38 2
Цитата Сообщение от Ники Посмотреть сообщение
C++
1
2
cin.get(); //сожрал первую букву
cin.getline(a->marka, 20); // сожрал остальные
Что делать понял?
1
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 50
12.10.2015, 19:09  [ТС] 3
Убрал cin.get();
Без него нормально выводит. Но я читал, что его нужно ставить, так как на вход может случайно прийти перевод строки и ввод не произойдет. И я понять не могу, что с этим тогда делать
0
252 / 128 / 54
Регистрация: 04.05.2013
Сообщений: 346
12.10.2015, 19:11 4
Ники,
Если так боитесь символа переноса строки:
C++
1
2
if (cin.peek() == '\n')
    cin.get();
1
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
12.10.2015, 19:24 5
get() ставь там, где '\n' остаётся, а не вообще на всякий случай.
1
12.10.2015, 19:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2015, 19:24
Помогаю со студенческими работами здесь

При выводе посредством cout() получается один и тот же набор цифр
Здравствуйте дорогие форумчане. У меня трабл. В независимости от того что я подаю в cout, результат...

Написать программу, меняющую первую букву каждого слова на эту же букву верхнего регистра
Дан массив из 10 строк по 80 символов, требуется заменить первую букву в каждом слове на эту же...

Не работают команды в выводе cout
При выводе не работает табуляция /t и сноска строки /n, нужно подключить какую-то библиотеку?? ...

дано слово из чётного количества букв.поменять местами первую и вторую букву третью и четвёртую букву и тд.
дано слово из чётного количества букв.поменять местами первую и вторую букву третью и четвёртую...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru