С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1296 / 926 / 448
Регистрация: 21.10.2012
Сообщений: 2,601
1

Неправильный цикл

27.09.2013, 11:25. Показов 553. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
buffer - массив чисел: 1010101010. Хочу в поле i записать все, а в поле q все единицы. Но получается, что в оба поля записывается все содержимое buffer. Почему так?
C++
1
2
3
4
5
for (int i=0; i <= length; i++) {
        if (i%2) {
            strcat(iq.i,AnsiString(buffer[i]).c_str());
        } else {strcat(iq.q,AnsiString(buffer[i]).c_str());};
    };
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
27.09.2013, 11:25
Ответы с готовыми решениями:

Неправильный логин и неправильный пароль, программа не выдает сообщения об ошибке
Вообщем проблема такова: DBConnect-&gt;ConnectionString = &quot;Provider=SQLOLEDB.1;Password=&quot; +...

Неправильный цикл
Объясните, пожалуйста, почему в цикле While v &lt; v1 do begin New(i3); ...

неправильный цикл for
class anketa: public fio, public svedeniya { public: friend void run(anketa object1, int n);...

Цикл While в запросе: Неправильный синтаксис около конструкции
Коллеги, Вот фрагмент запроса: DECLARE @TEMP1 int SELECT @TEMP1 = COUNT(*) FROM ..Items ...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33001 / 21305 / 8182
Регистрация: 22.10.2011
Сообщений: 36,607
Записей в блоге: 8
27.09.2013, 11:39 2
Объясни мне, ты долго будешь создавать новые темы по этому невнятному вопросу? Обрывки кода какие-то приводишь... Ты задачу лучше поставь по человечески!
Цитата Сообщение от АлександрКом Посмотреть сообщение
Хочу в поле i записать все, а в поле q все единицы.
Это - не постановка задания, тем более с неизвестными типами полей i и q... Если тебе надо всё - то не надо ничего мудрить, ВСЁ у тебя уже есть в строке, безусловное копирование строки в поле i - решение первой части твоего "задания". Вторая: единицы. Прелестно. Пройди циклом по строке, посчитай сколько там единиц, и потом в поле q внеси строку, содержащую именно столько символов '1', сколько насчитал (StringOfChar в помощь)... Вопросы?
1
1296 / 926 / 448
Регистрация: 21.10.2012
Сообщений: 2,601
27.09.2013, 12:19  [ТС] 3
Есть такая структура:
C++
1
2
3
struct inf{
char i[];
char q[];
buffer я сделал просто для примера такой, там будут произвольные числа и я не смогу их посчитать циклом. В файле будут числа типа int по 32бит. Мне нужно в i записать первое число из файла(32битное), в q второе, потом в i третье и т.д. Вообщем записывать по 32 бит в i, в q, в i, в q ...

Добавлено через 19 минут
Попробывал перевести значение buffer в int:
C++
1
atoi(buffer);
Получилось тем самым одно какое-то большое число, как я понимаю. Т.е. если в buffer было -123456789, то после atoi buffer стал числом 123456789. А мне нужно именно отдельные составляющие, т.е. 1, 2, 3 и т.д.

Добавлено через 1 минуту
Вот так не хочет тоже:
C++
1
2
for (int w=0; w < length; w++) {
    atoi(buffer[w]);}
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33001 / 21305 / 8182
Регистрация: 22.10.2011
Сообщений: 36,607
Записей в блоге: 8
27.09.2013, 12:25 4
Если по 32 бита - то ты не тот тип выбрал... char - он всегда однобайтовый... Задача все так же непонятна, чего бы тебе просто не сделать так:

C++
1
2
3
4
5
6
int i1 = 0, i2 = 0;
пока_не_конец_файла
   num = читать_32_битное_число_из_файла();
   iq.i[i1++] = num;
   num = читать_32_битное_число_из_файла();
   iq.q[i2++] = num;
? Но сначала, разумеется, надо узнать размер файла (сколько там этих 32-битных чисел содержится), и выделить память под поля i и q, то что у тебя есть сейчас - работать не будет... И тип элементов массива для i и q подобрать соответствующий...
0
1296 / 926 / 448
Регистрация: 21.10.2012
Сообщений: 2,601
27.09.2013, 12:35  [ТС] 5
Проблема в том, что я изначально не знаю, сколько будет чисел в файле. И как можно прочитать 32 битное число?

Добавлено через 2 минуты
Цитата Сообщение от UI Посмотреть сообщение
iq.i[i1++] = num;
а вот так iq.i будет в итоге как массив чисел или как сумма num-ов?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33001 / 21305 / 8182
Регистрация: 22.10.2011
Сообщений: 36,607
Записей в блоге: 8
27.09.2013, 12:36 6
Проблема - в том, что ты не понимаешь, что делаешь, и, соответственно, не можешь внятно объяснить, чего нужно... Не говорит ни какой файл (текстовый, бинарный), ничего - а ждет помощи...

google->форум экстрасенсов

Там тебе точно помогут... От темы отписываюсь, неинтересно...
0
27.09.2013, 12:36
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
27.09.2013, 12:36
Помогаю со студенческими работами здесь

Неправильный парсинг строки и неправильный её вывод
Добрый день! Столкнулся с непонятным поведением парсера: На вход подается вот такая строка: ...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать...

Цикл с предусловием, цикл с постусловием и цикл с параметром
Объясните пожалуйста как делать эти циклы. У меня не получается. Можете сделать как на фото, или на...

Цикл: Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20
Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20. Возведение в степень в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru