44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 150
|
||||||
1 | ||||||
Особенности while (pch != NULL)23.09.2015, 01:10. Показов 1882. Ответов 9
Метки нет (Все метки)
Здравствуйте!
Подскажите, почему пример ниже завершается ошибкой? Ведь если pch == NULL, то запись в вектор не должна производиться? В массиве char str[] есть непечатные символы, которые тут не отображаются, но как я понимаю, проблема не в этом. Мне нужно записать элементы массива в структуру, на свои места, но у меня пока не получатся даже запись в вектор.
0
|
23.09.2015, 01:10 | |
Ответы с готовыми решениями:
9
В чём разница между pch.h и stdfx.h Не работает код: m_web1.Navigate ('gidro.htm',0,0,NULL,NULL); Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT Греется диод PCH |
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 150
|
|
23.09.2015, 01:21 [ТС] | 2 |
Не правильно выразился выше, запись в вектор получается, но завершается ошибкой почему-то.
0
|
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 150
|
|
23.09.2015, 02:05 [ТС] | 4 |
Croessmah, Спасибо!
Да действительно, так всё работает, без ошибок. Но я не могу понять, почему выполнение программы доходит до temp_vector.push_back(pch); через этот оператор while (pch != NULL) почему не прекращается выполнение цикла по условию pch != NULL? Ведь оператор if ( pch != 0 ) повторяет условие которое записано в операторе цикла...
0
|
Неэпический
|
||||||
23.09.2015, 02:12 | 5 | |||||
Сообщение было отмечено russian_pepper как решение
Решение
1
|
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 150
|
||||||
23.09.2015, 15:32 [ТС] | 7 | |||||
Evg, Да, действительно, так красивее и логичнее и правильнее, но теперь
не могу понять, почему в таком варианте программы, в консоль, надпись "pch = PRICE" не выводится ни разу, хотя значение "PRICE" присваивается pch и даже записывается в вектор temp_vector. Не подскажете, почему так?
https://drive.google.com/open?... 1lfblZNOFk
0
|
23.09.2015, 15:43 | 8 |
Ну ответ же очевиден и точно такой же, как и в прошлый раз. Между "хотя значение PRICE присваивается pch и даже записывается в вектор temp_vector" и "if (pch == PRICE)" стоит модификация переменной pch. Т.е. твой код эквивалентен:
C int x, y; x = 1; printf ("%d\n", x); /* увидели печать, что x=1 */ x = 10; y = x; /* почему-то основываясь на печати делаем вывод, что y=1 */ Ну и к слову. Почти все интерфейсы поиска спроектированы так, чтобы пользоваться ими в цикле for: C for (pch = strtok(str, separator); pch != NULL; pch = strtok(NULL, separator)) { ... } Добавлено через 1 минуту C if (pch == "PRICE")
1
|
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 150
|
||||||
23.09.2015, 15:47 [ТС] | 9 | |||||
Evg, Да, действительно, я поторопился, но так тоже не работает, как ожидал:
0
|
Неэпический
|
||||||
23.09.2015, 16:28 | 10 | |||||
У Вас сравниваются указатели. Используйте strcmp, например
1
|
23.09.2015, 16:28 | |
23.09.2015, 16:28 | |
Помогаю со студенческими работами здесь
10
Максимальная температура моста Pch? Диод PCH обжигает, ноутбук тормозит HP Envy m6-1272er, греется диод PCH UPDATE SELECT, ERROR: null value in column violates not-null constraint Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |