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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
#1

Ошибка с использованием while - C++

01.09.2009, 15:58. Просмотров 1624. Ответов 32
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <stdio.h>
 
char f1(int x) {return (char)x;}
 
int main()
{
    
    int a;
    int b=0;
    while (b=0)
    {
    cout<<"Put a value:\n";
    cin>>a; 
    cout<<"\nb = "<<f1(a);
    cout<<"\nNext - 0,Exit - 1\n";
    cin>>b;
    cout<<"\n";
    }
    getchar();
    return 0;
}
На сколько я знаю, while выполняется до тех пор пока условие истинно, но у меня ни разу не выполняется . В чем ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2009, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка с использованием while (C++):

Что за ошибка с использованием cstdio? - C++
Вот код: #include &lt;cstdio&gt; #include &lt;clocale&gt; using namespace std; int main() { setlocale(LC_ALL,&quot;Russian&quot;); double...

Ошибка в программе с использованием функций - C++
#include &lt;stdio.h&gt;//подключение #include &lt;conio.h&gt;//необходимых #include &lt;locale&gt;//библиотек #include &lt;time.h&gt; void...

Ошибка записи в файл с использованием ifstream - C++
Здравствуйте! Я использую visual studio и у меня вылазит ошибка при компилировании следущего кода, а в Borland все работало: Main.cpp ...

Ошибка в функции, связанная с использованием памяти - C++
Все доброго времени суток. Помогите, пожалуйста, найти ошибку в моей функции: #include &lt;wchar.h&gt; #include &quot;functions.h&quot; // файл...

Ошибка при запуске приложение с использованием ffmpeg - C++
Надо по учебе написать программу, которое видео будет разрезать на кадры. Для этого решил использовать библиотеку ffmpeg, полдня подключал...

Ошибка при переборе массива с использованием указателей - C++
Собственно сабж. Есть код int m = {4,5,46,57,35,65,35,55,45,95}; for (int *p = &amp;m; p&lt;&amp;m; p++) { cout &lt;&lt; m &lt;&lt;...

32
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
01.09.2009, 16:00 #2
в условии два знака = должно быть
1
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
01.09.2009, 16:01 #3
C++
1
 while (b==0)
1
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 16:06  [ТС] #4
Мда, глупо и просто, как всегда ) Спасибо большое!
ps: думал переделать int в char, но получилось представление в анси, как я понял
0
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 20:10  [ТС] #5
А в чем ошибка такого кода? Я конечно догадываюсь в чем, но всё же...

C++
1
2
3
4
5
6
7
8
9
10
char dec2bin(int x)
{
char pr=' ';
    while (x>0)
    {
    pr='x%2'+pr;
    x=x-x%2;
    }
return pr;
}
Добавлено через 8 минут
опятьс условием ошибся?)
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
01.09.2009, 20:12 #6
Цитата Сообщение от Железо Посмотреть сообщение
опятьс условием ошибся?)
Нет. Ошибка в другом, и компилятор должен был сказать в чем.
0
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 20:13  [ТС] #7
ошибок нет, компилится нормально
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
01.09.2009, 20:16 #8
Код
warning: multi-character character constant
Это про 'x%2'. Нельзя в одинарных кавычках писать больше дного символа.
0
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 20:18  [ТС] #9
видимо в vs 6 можно ) ну значит таким образом я ф-ию не реализую
0
RNT
Автор FAQ
3134 / 354 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
01.09.2009, 20:18 #10
Если char должен хранить больше одного символа , то надо объявить массив char или указатель на char
C++
1
2
3
char pr[64]; 
или
char *pr;
Если использовать указатель на char то надо выделять память при помощи new
1
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 21:01  [ТС] #11
Спасибо, пока думаю над массивом

Добавлено через 38 минут
А как можно присвоить char'у значение выражения? Ну на подобии
C++
1
pr[i]=""+x%2+"";
пока пытаюсь найти ответ сам
0
RNT
Автор FAQ
3134 / 354 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
01.09.2009, 21:09 #12
Цитата Сообщение от Железо Посмотреть сообщение
pr[i]=""+x%2+"";
Неправильно , вы присваиваете одному элементу массива сразу несколько символов
Попробуйте так
C++
1
2
3
4
5
pr=""+x%2+"";
или так
*pr=""+x%2+""; //Если это указатель
или так
strcpy(pr, ""+x%2+"");
1
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 21:46  [ТС] #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void dec2bin(int x)
{
char pr[40];
//int i=1;
pr=" "; 
while (x>0)
    {pr=""+x%2+""+pr;
    x=x-x%2;
    //++i;
    }
    //pr[i]=NULL;
cout<<pr;
}
вот такая фигня ругается сильно

Добавлено через 25 минут
ну вот с этим вроде меньше, но есть пару ошибочек:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void dec2bin(int x)
{
char pr[40];
//int i=1;
pr=" "; 
while (x>0)
    {strcpy(pr, ""+x%2+pr+"");;
    x=x-x%2;
    //++i;
    }
    //pr[i]=NULL;
cout<<pr;
}
'=' : cannot convert from 'char [2]' to 'char [40]';
cannot add two pointers;
0
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
01.09.2009, 22:02 #14
Цитата Сообщение от Железо Посмотреть сообщение
""+x%2+pr+""
нельзя складывать символы. это вам не строки (string). Для конкатенации используется strcat()

для конвертации int в char* нужно использовать sprintf
1
Железо
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 15
01.09.2009, 22:12  [ТС] #15
Буду разбираться, спасибо
0
01.09.2009, 22:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2009, 22:12
Привет! Вот еще темы с ответами:

Ошибка с видимостью блока с использованием булева значения - C++
Всем привет! Друзья, нужна помощь! Не могу сдать работу из-за ошибки. У меня при выполнении кода возникает error, связанная с видимостью...

В чем ошибка? программа с использованием контейнера list - C++
/*Написать программу,моделирующую управление каталогом в файловой сис* теме. Для каждого файла в каталоге содержатся следующие...

Ошибка при создании функции с использованием Args& - C++
При создании Wrapper возникает ошибка. Вроде до этого делал точно так-же и все работало. Чувствует мое сердце где-то я сделал что-то не...

Удаление комментариев из текста программы с использованием STL, ошибка при выполнении - C++
Здравствуйте решал задачу с использованием STL из книги Страуструпа 6.22 возникла проблема программа вылетает, помогите пожалуйста...


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

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

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