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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
#1

Разница между 0 и 00 ? - C++

27.01.2012, 23:01. Просмотров 2212. Ответов 27
Метки нет (Все метки)

Как заставить программу различать 0 и 00 (ноль и два ноля, как в рулетке)? Вариант с заменой 00 на какое-то число не подходит, так как мне всё равно нужно будет выводить на форму потом 00, а обратная конвертация - это опять лишний код...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2012, 23:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разница между 0 и 00 ? (C++):

Разница между != и <= - C++
Здравствуйте! Писал программу с использованием QuickSort и заинтересовала такая вещь: void quickSort(int arr, int left, int right) { ...

Разница между if else и else if - C++
Привет, у меня возник &quot;нубский&quot; вопрос. Этот код, это же соркащенная версия нижнего? int i = 3; if (i == 1) ...

Разница между С и С++ - C++
Если не брать во внимание объекты и классы, то разница состоит только лишь в cin, cout и директивах?

Разница между программами - C++
Какая между этими программами разница? Почему они другие результаты выводят? #include &lt;iostream.h&gt; int main() { int i=5; ...

вчем разница между с++ и ++с - C++
Не как него могу понять в чем разница между с++ и ++с ? с - счетчик. просто пример: int main() { int c = 0; // счетчик int k; ...

Разница между DEV и VS - C++
Подскажите пожалуйста в чем проблема, писал задания на DEV C++, теперь начал работать на VS, но они не работают там.

27
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
27.01.2012, 23:13 #2
пойдёт?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
        char num[2];
 
        std::cin >> num;
 
        std::cout << num << std::endl;
 
        return 0;
}
0
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
27.01.2012, 23:13 #3
если 0 и 00 это строки то

C++
1
2
3
4
5
6
7
8
9
int main()
{
char* tmp = "0";
bool comp = false;
comp =  !strcmp("0",tmp);
comp = !strcmp("00",tmp);
 
return 0;
}
0
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.01.2012, 23:14 #4
Цитата Сообщение от disker Посмотреть сообщение
Как заставить программу различать 0 и 00
Сделать это массивами
0
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
27.01.2012, 23:31  [ТС] #5
спасибо всем за ответы, но вряд ли разберусь , так как не совсем корректно поставил вопрос. В общем у меня идет загрузка из файла в таком виде :

C++
1
2
3
4
int a[600];
  fstream f("data.dat", ios::in);
  for(int i = 0; i <= 599; i++) 
  f >> a[i];
куда и что мне нужно написать, чтобы в массив вносился 0 и 00 отдельными значениями как a[1], a[2] и т.д. ?
Просто я потом пытаюсь эти 600 чисел вывести на форму и вместо 00 в label получаю 0

Добавлено через 2 минуты
R136a1 с char я изначально и делал массив, но получаю какую-то белеберду после вывода на label. Абсолютно другие числа получаются, чем вводятся

к примеру вместо 1 12 24 0 26

я получаю 49 49 50 50 52
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
27.01.2012, 23:39 #6
Цитата Сообщение от disker Посмотреть сообщение
R136a1 с char я изначально и делал массив, но получаю какую-то белеберду после вывода на label. Абсолютно другие числа получаются, чем вводятся
к примеру вместо 1 12 24 0 26
я получаю 49 49 50 50 52
если не ошибаюсь, то это коды ASCII. Если так, их нужно явно в char преобразовать
0
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
27.01.2012, 23:42  [ТС] #7
R136a1 а как это сделать чтоб записать потом в label ? Я просто новичек в С++ и не знаю... но немного странно, что к примеру первые 2 числа одинаковые, хотя в первой строке видно что они разные...

вывод у меня так осуществляется :

C++
1
 label1->Text = Convert::ToString(a[0]);
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
27.01.2012, 23:49 #8
Цитата Сообщение от disker Посмотреть сообщение
R136a1 а как это сделать чтоб записать потом в label ? Я просто новичек в С++ и не знаю... но немного странно, что к примеру первые 2 числа одинаковые, хотя в первой строке видно что они разные...

вывод у меня так осуществляется :

C++
1
 label1->Text = Convert::ToString(a[0]);
так попробуйте
C++
1
label1->Text = Convert::ToString((char)a[0])
0
retmas
Жарю без масла
863 / 745 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
27.01.2012, 23:55 #9
а почему бы эти числа сразу не считывать как строки(слова)? тем более все равно выводить их как текст
0
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
28.01.2012, 00:00  [ТС] #10
Цитата Сообщение от R136a1 Посмотреть сообщение
label1->Text = Convert::ToString((char)a[0])
нет, результат не поменялся

Цитата Сообщение от retmas Посмотреть сообщение
а почему бы эти числа сразу не считывать как строки(слова)? тем более все равно выводить их как текст
да, такой вариант мне тоже бы подошел... а как мне это организовать ?
0
retmas
Жарю без масла
863 / 745 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
28.01.2012, 00:02 #11
считывайте в массив(вектор) строк и выводите куда надо
0
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
28.01.2012, 00:08  [ТС] #12
Цитата Сообщение от retmas Посмотреть сообщение
считывайте в массив(вектор) строк и выводите куда надо
нет, такой вариант мне не подойдет. Если бы у меня в строке было только одно число, то тогда да, согласен. А у меня в строке их 25 и в дальнейшем мне нужно будет каждое число сравнивать на то равно оно другому числу или не равно, поэтому я думаю что так не подходит..
0
retmas
Жарю без масла
863 / 745 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
28.01.2012, 00:19 #13
так не строку целиком считывайте, а "словами"

Добавлено через 43 секунды
например, так
C++
1
2
3
4
5
    vector<string> vs;
    ifstream ifs("data.dat");
    istream_iterator<string> eos;
    istream_iterator<string> iit (ifs);
    copy(iit, eos, back_inserter(vs));
и если у вас в файле, например, 1 2 23 0 3 00 -1, то и массив строк будет "1" "2" "23" "0" "3" "00" "-1"
0
disker
2 / 2 / 0
Регистрация: 25.01.2012
Сообщений: 88
28.01.2012, 00:25  [ТС] #14
В смысле так ?

C++
1
2
3
4
5
6
7
8
9
10
char a[600];
  
    vector<string> vs;
    ifstream ifs("data.dat");
    istream_iterator<string> eos;
    istream_iterator<string> iit (ifs);
    copy(iit, eos, back_inserter(vs));
 
  for(int i = 0; i <= 599; i++) 
  f >> a[i];
0
retmas
Жарю без масла
863 / 745 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
28.01.2012, 00:27 #15
здесь ваш массив а и цикл уже не нужны. vs - вектор строк(слов), который и используйте для вывода
0
28.01.2012, 00:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2012, 00:27
Привет! Вот еще темы с ответами:

В чем разница между [] и * ? - C++
Думал, что ни в чем, но когда попытался сделать так: (в файле 1) char lc; в файле 2: extern char* lc; Компилятор ругаться не стал,...

В чем разница между X x; и X x()? - C++
Корректный ли этот ответ?

Разница между T **a и T *a[const_size] - C++
T c_a; // Здесь тип c_a это T(*) T **d_a = (T**) malloc(sizeof(T) * size); for (i = 0; i &lt; size; ++i) { d_a = (T*)...

В чем разница между С и С++ - C++
Возник вопрос в чем жи разница между С и С++ кроме того, что в С++ есть классы а в С их нету ?


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

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

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