Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2011, 02:46   #1
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
По умолчанию else не выполнятся

Доброго времени суток!

есть такая функция
Код:
// просто пример
void edit(){

cout << "Точно хотите изменить? y-да n-нет  : "; 
cin >> s;
 if (s='y') { // char s уже обьявлена
     с=2+2;
} else return menu();

}
или проблема в ифе или уже мозги спать хотят ))

но суть в том что else не хочет выполнятся.
подскажите плз как это исправить

еще вопрос возможно сделать вывод структуры с++ в .xml (таблица exel)
Господа - учитесь юзать поисковые машины
web-обитель | авто

Последний раз редактировалось madmaniac; 29.10.2011 в 03:16.
madmaniac вне форума Ответить с цитированием
Старый 29.10.2011, 03:39   #2
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Код:
if (s=='y')
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Старый 29.10.2011, 12:26   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Сообщение от madmaniac Посмотреть сообщение
еще вопрос возможно сделать вывод структуры с++ в .xml (таблица exel)

Формат таблиц MS Excel - .xls, .xlsx. Или что имелось в виду?
Abstraction вне форума Ответить с цитированием
Старый 29.10.2011, 13:52   #4
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

Цитата:
Сообщение от madmaniac Посмотреть сообщение
Код:
} else return menu();
Ну он у тебя в else сразу выходит из функции.
Нужно сделать так:
Код:
else
{
menu();
return;
}
SteAlzzer вне форума Ответить с цитированием
Старый 29.10.2011, 15:33   #5
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение

Формат таблиц MS Excel - .xls, .xlsx. Или что имелось в виду?
а точно. да таблица MS Excel
чутка еще от разметок неотошел
Господа - учитесь юзать поисковые машины
web-обитель | авто

Последний раз редактировалось madmaniac; 29.10.2011 в 16:01.
madmaniac вне форума Ответить с цитированием
Старый 30.10.2011, 01:00   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Сообщение от SteAlzzer Посмотреть сообщение
Ну он у тебя в else сразу выходит из функции.
Нужно сделать так:
Будете смеяться, но эти записи в первом приближении эквивалентны. Откуда вообще мысль про "сразу выходит"?

madmaniac, есть два базовых варианта: или найти стороннюю библиотеку для работы с xls и копаться в её интерфейсе, или использовать компоненты самого Excel (во втором случае, натурально, он должен быть установлен там, где будет выполняться программа). Статья с codeproject в качестве иллюстрации.

Есть ещё одна альтернатива - выдавать данные в .csv, Excel его без проблем читает, и если нужно передать простые данные в табличном виде, я бы посмотрел на этот вариант очень внимательно.
Abstraction вне форума Ответить с цитированием
Старый 31.10.2011, 10:09   #7
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Будете смеяться, но эти записи в первом приближении эквивалентны. Откуда вообще мысль про "сразу выходит"?
Разве? Вроде всегда считал, что после ключевого слова должна обязательно идти точка с запятой и всегда после этого ключевого слова функция завершает свое выполнение.

Есть вариант предположить, что здесь возвращается значение функции menu();, но функция edit(); войдовская.
Поправьте, если ошибаюсь.
SteAlzzer вне форума Ответить с цитированием
Старый 31.10.2011, 11:30   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Так и menu() возвращает void - поэтому можно так писать ("как бы" menu возвращает void, который передаётся edit и она его возвращает).
Этот фокус сделали возможным из-за шаблонов (чтобы, если возвращается параметр шаблона тип T, не было ошибки при T=void).
Abstraction вне форума Ответить с цитированием
Старый 31.10.2011, 22:50   #9
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

аа, вот оно как!
спасибо)
SteAlzzer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как притормозить основной поток пока не выполнятся все дополнительные? Crystallon Общие вопросы Delphi 2 24.11.2010 21:30
Запросы из делфи не реализуются, хотя в accesse выполнятся. T@tali Общие вопросы Delphi 1 23.05.2010 16:40