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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2013, 16:07   #1
Alex009
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 32
По умолчанию И опять у меня проблема...

И это снова я извините если кого уже достал... Теперь такая проблема вот код: (по учебнику Шилдта )

Код:
#include <iostream>
using namespace std;

void myfunc();
int main()
{
    cout <<"V funkcii main().";
    myfunc();
    cout <<"Snova v funkcii main().";
    
    system("pause");
    return 0;
}
void myfunc(){
     cout <<"V funkcii myfunc().";
}
В книге написано что она должна делать вот так:

"Программа работает следующим образом. Вызывается функция main() и выполняется ее первая cout-инструкция. Затем из функции main() вызывается функция myfunc(). Обратите внимание на то, как этот вызов реализуется в программе: указывается имя функции myfunc, за которым следуют пара круглых скобок и точка с запятой. Вызов любой функции представляет собой С++-инструкцию и поэтому должен завершаться точкой с запятой. Затем функция myfunc() выполняет свою единственную cout-инструкцию и передает управление назад функции main(), причем той строке кода, которая расположена непосредственно за вызовом функции. Наконец, функция main() выполняет свою вторую cout-инструкцию, которая завершает всю программу. Итак, на экране мы должны увидеть такие результаты.
В функции main().
В функции myfunc().
Снова в функции main()."

А у меня просто выдает все сразу надписи ( cout ) и надпись: "Нажмите любую клавишу."
Alex009 вне форума Ответить с цитированием
Старый 08.03.2013, 16:13   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

и че не так?
Цитата:
А у меня просто выдает все сразу надписи
должна выдавать как-то "не просто" ?

Цитата:
надпись: "Нажмите любую клавишу."
это из-за system("pause")
rrrFer вне форума Ответить с цитированием
Старый 08.03.2013, 16:22   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Код:
#include <iostream>
using namespace std;

void myfunc();
int main()
{
    cout << "V funkcii main()." << endl;
    myfunc();
    cout << "Snova v funkcii main()." << endl;
    
    system("pause");
    return 0;
}
void myfunc(){
     cout << "V funkcii myfunc()." << endl;
}
Чтобы каждая надпись была на своей строке, добавил endl'ы.
Программа работает настолько быстро, что надписи для человека выводятся одновременно.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.03.2013, 18:07   #4
Alex009
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 32
По умолчанию

А я не понял а как должна работать программа
Alex009 вне форума Ответить с цитированием
Старый 08.03.2013, 18:12   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Так и должна
Этот пример показывает, как работает программа.
Сначала всегда вызывается main. Если в main вызываются функции, то после их выполнения управление передается на команду, идущую сразу после вызова функции. Для наглядности сделаны выводы сообщений.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.03.2013, 18:55   #6
Alex009
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 32
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Так и должна
Этот пример показывает, как работает программа.
Сначала всегда вызывается main. Если в main вызываются функции, то после их выполнения управление передается на команду, идущую сразу после вызова функции. Для наглядности сделаны выводы сообщений.
Что то я не понял я также просто надписи могу сделать используя только main()... А для чего тогда вторая функция???
Alex009 вне форума Ответить с цитированием
Старый 08.03.2013, 18:58   #7
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от Alex009 Посмотреть сообщение
А я не понял а как должна работать программа
Улёт!!!! всем привет. а зачем использовать system("pause")... это вроде windows.h надо включать.... не проще getch()?
Код:
void myfunc();
int main()
{
    cout <<"V funkcii main().\n";
    myfunc();
    cout <<"Snova v funkcii main().\n";
    
    system("pause");
    return 0;
}
void myfunc(){
     cout <<"V funkcii myfunc().\n";
}
И так, сначало как всегда стартует main она пишет херь и вызывает myfunc, та в свою очередь делает ещё херь. После того как myfunc отработала... и ушла на пенсию.. main пашит дальше и пишет херь.... но потом его задолбало и он делает перекур, пока вы не нажмёте на кнопочку.
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 08.03.2013 в 19:01.
Perchik71 вне форума Ответить с цитированием
Старый 08.03.2013, 19:04   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Alex009, можете. Этот пример помогает понять, как работают функции (конечно, это самый простой пример). Пока программа простая, можно все писать в main, когда программа начинает разрастаться, она начинает делиться на функции и даже отдельные файлы (один разработчик пишет 1 функцию, другой - другую; одна команда разрабатывает 1 модуль, другая - другой).
Perchik71, для учебных программ, наверное, все равно - компилируется и хорошо.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.03.2013, 19:50   #9
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Цитата:
Сообщение от Perchik71 Посмотреть сообщение
а зачем использовать system("pause")... это вроде windows.h надо включать.... не проще getch()?
getch() по любому проще, ведь в названии conio.h, который надо подключить для этой функции на два символа меньше, чем в названии windows.h
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 08.03.2013, 20:27   #10
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Юзаем cin.get и ничего доп. не пишем.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу прощения. Но у меня опять проблема. Написал код но что то неправельно потправте меня. Sergey 23 Visual C++ 2 15.09.2012 19:59
Вы будете смеяться, но у меня опять СЫН!!!! Баламут Свободное общение 40 16.07.2010 01:01
И опять проблема с хуками. Приложение само закрывается Altera Win Api 10 16.03.2010 19:39
У меня проблема! Monster-cs Свободное общение 4 01.11.2009 12:37
Это опять я, проблема вывода график на рисунок. Bilargo Помощь студентам 14 27.10.2009 11:18