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

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

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

Почему данный код игнорирует 1-ый символ и приходится первую букву дублировать? - C++

22.02.2014, 04:17. Просмотров 408. Ответов 1
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста почему данный код игнорирует 1-ый символ и приходится первую букву дублировать ?
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
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    string k;
    int s=0;
 
    while(k!="end"){
                            cout<<"Введите параметр:";
                            cin.ignore();
                            getline(cin,k);
                            if(k!="end"){
                                if(k=="char"){
                                    s=s+ sizeof(char);
                                }else{
                                    if(k=="short int"){
                                        s=s+sizeof(short int);
                                    }else{
                                        if(k=="int"){
                                            s=s+ sizeof(int);
                                        }else{
                                            if(k=="long int"){
                                                s=s+ sizeof(long int);
                                            }else{
                                                if(k=="float"){
                                                    s=s+ sizeof(float);
                                                }else{
                                                    if(k=="double"){
                                                        s=s+ sizeof(double);
                                                    }else{
                                                        cout<<"Ошибка!Такого параметра нет:"<<'\n';
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
    return 0;
}
Добавлено через 1 час 52 минуты
Вероятно, мне стоит уточнить, что я хочу:
Я использую cin.ignore() , чтобы у меня читались строки (long int ,short int ) , т.к без этого программа не читает строку с пробелом, но тут возникает проблема в том, что почему-то при вводе строки, строка теряет первую букву и если ты хочешь, чтобы программа работала, надо продублировать первую букву.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 04:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему данный код игнорирует 1-ый символ и приходится первую букву дублировать? (C++):

Заменить в слове первую букву “A” на символ - C++
Задание такого: Ввести с клавиатуры слово и символ. Заменить в слове первую букву “A” на символ. Присоединить введенный символ к...

Почему у меня в файл записует только первую букву а не все слово - C++
Почему у меня в файл записует только первую букву а не все слово Вот программа char ch; cout &lt;&lt; &quot;Введите текст&quot; &lt;&lt; endl; cin &gt;&gt;...

Почему работает данный код? - C++
В разделе &quot;Комбинаторика&quot; ( http://www.cyberforum.ru/combinatorics/thread572992.html ) задали вопрос: Сколько четырехзначных чисел можно...

Как работает данный код? И почему не компилируется? - C++
Обьясните пожалуйста как работает данный код, и скажите почему он не компилируется? И есть ли способ считать числа еще быстрее? ...

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

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

1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2014, 08:20 #2
Цитата Сообщение от Sshh Посмотреть сообщение
Я использую cin.ignore() , чтобы у меня читались строки (long int ,short int ) , т.к без этого программа не читает строку с пробелом,
getline() читает строку с пробелами. При чём здесь cin.ignore()? cin.ignore(), перед getline(), используют, когда в потоке остаётся '\n'. Тут этого нет, поэтому и cin.ignore() не нужен.
Цитата Сообщение от Sshh Посмотреть сообщение
что почему-то при вводе строки, строка теряет первую букву
Потому что cin.ignore() её съедает.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2014, 08:20
Привет! Вот еще темы с ответами:

Почему код не подсчитывает символ в верхнем регистре - C++
Здравствуйте. Такое задание по книге. Напишите программу, использующую серию операторов if для подсчета количества гласных букв в тексте,...

Почему VS игнорирует if ()? - C++
Отрывок кода: int cr = GetRValue(color); int cg = GetGValue(color); int cb = GetBValue(color); if (cr = 152) { if (cg =...

Почему функция putchar(); выводит только первый символ?(Короткий код) - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main() { int c; c=getchar(); putchar(c); getch(); }

Почему-то программа игнорирует условие if/else - C++
Дана задача: Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив минимально возможного размера, в...


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

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

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