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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 250
#1

Как проверить переменную на пустоту? - C++

16.09.2012, 22:03. Просмотров 2904. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста, как в С++ можно проверить переменную на пустоту? Предположем что, в некой проги есть запрос на ввод слово, и может такое бы что, пользователь ничего не введет, а просто нажмет ввод("Enter"), Как это можно проверить в if, или еще как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 22:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как проверить переменную на пустоту? (C++):

Как проверить массив из char на пустоту? - C++
после чсла выводит буквы М, в том месте где пустые значения, как сделать чтобы они не выводились? number != '\0' - не помогает, NULL тоже ...

Как проверить на пустоту буфер потока cin ? - C++
Мне нужно ввести строку такого типа: "поиск 1 2 3" cin>>sts.code; j = 0; while( ???вот тут что то !буфер.empty()) { ...

Как проверить, что пользователь ввел число в переменную string? - C++
Скажите пожалуйста как проверить что пользователь ввел число в переменную string? И как его потом конвертировать в int ?

Не могу проверить переменную класса на соответствие NULL - C++
Здравствуйте. Есть переменная класса private char *pGetQuery; В конструкторе ей присваивается NULL pGetQuery = NULL; При...

Проверить, является ли число, записанное в переменную типа Double, иррациональным - C++
Помогите. Нужно узнать, целое ли записанное в переменную double число, или же имеет дробную часть. Что-то нет никаких мыслей. Спасибо

Записать день в переменную d,месяц в переменную m, год в переменную y - C++
Как можно получить системную дату? Мне надо записать день в переменную d,месяц в переменную m, год в переменную y Заранее Спасибо!

9
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
16.09.2012, 22:04 #2
Поставить значение, которое пользователь не может ввести. Если это строка, то достаточно присвоить первому символу 0
0
AnreyKazakov
Заблокирован
16.09.2012, 22:07 #3
C++
1
2
3
string str;
cin>>str;
if(str==""){}
Или
if(str.empty()==true){}
И еще миллион вариантов...
0
DDim1000
1 / 1 / 0
Регистрация: 17.12.2011
Сообщений: 250
16.09.2012, 22:59  [ТС] #4
Ни один из предложенных вариантов не работает, Жму Enter и ничего..................
0
Topotun
89 / 48 / 7
Регистрация: 16.09.2012
Сообщений: 207
17.09.2012, 00:08 #5
или Вы ошибаетесь в том, что варианты не работают..
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
Код C++
1
2
3
4
5
string str;
cin>>str;
if(str==""){}
Ничего и не должно происходить) Так, что всё правильно)
0
Pure
228 / 49 / 2
Регистрация: 13.03.2012
Сообщений: 453
Записей в блоге: 7
17.09.2012, 00:11 #6
DDim1000,по нажатию энтер отправляется символ перевода строки обычно '\n';

На него и проверяй.

char trigger =0;
if(trigger =='\n') {}
0
IrineK
Заблокирован
17.09.2012, 00:25 #7
А если так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
 
int main()
{   string str;
    getline(cin,str);
 
    if(!str.length())
        cout<<"EMPTY!";
    else
        cout<<"NOT EMPTY!";
    
    cin.sync();
    cin.get();
    return 0;
}
1
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.09.2012, 02:49 #8
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
C++
1
2
3
string str;
cin>>str;
if(str==""){}
Или
if(str.empty()==true){}
И еще миллион вариантов...
Такой вариант не будет работать, потому что cin >> пропускает при вводе пробельные символы, в том числе и '\n' (Enter). cin >> будет ждать ввода чего-то не пробельного, и тогда только программа перейдёт к if(), но если уже что-то введено, зачем проверять на пустоту? И так ясно, что уже будет не пусто. cin >> для таких дел не подходит.
0
AnreyKazakov
Заблокирован
17.09.2012, 09:30 #9
Ну getline тогда
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
int main(){
    using std::cin;using std::cout;using std::endl;using std::string;using std::getline;
    string str;
    do
    {
    cout<<"Введите что-нибудь"<<endl;
    getline(cin,str);
}while(str=="");
    return 0;
    }
вводи сколько хочешь
1
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
17.09.2012, 09:38 #10
C++
1
2
3
4
std::string str;
 
while ( str.empty())
   std::getline( std::cin, str );
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2012, 09:38
Привет! Вот еще темы с ответами:

Процедура, записывающая в переменную X минимальное из значений X и Y, а в переменную Y – максимальное - C++
Описать процедуру Minmax(X, Y), записывающую в переменную X минимальное из значений X и Y, а в переменную Y – максимальное из этих значений...

Как проверить переменную на пустоту? - Free Pascal
Как проверить с помощью if else или while do что пользователь что-то ввел, а не просто нажал &quot;Enter&quot;?

Проверить переменную на пустоту - PHP БД
Добрый вечер! Подскажите пожалуйста, как проверить на пустоту в $vote_gift_real3 перед while? $vote_gift = array( 'box' =&gt;...

Проверить переменную на пустоту - Java
Привет, как можно условием проверить что переменная Num1 (float) пуста? и как ее можно очистить, что бы она не хранила значение?


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
17.09.2012, 09:38
Ответ Создать тему
Опции темы

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