singlepost

VS 2008 – окно программы сразу закрывается << На главную или назад  

Работаю в Visual C++ 2008. Написал программу.

#include <iostream>
#include <string.h>

using namespace std;

int main(void)
{
const int n=100;

typedef char String[n];

char s[n];

cout << "Введите строку: ";

cin.getline(s,100);

cout << s << endl;

char* token=strtok(s, " ");

while (token)
{
cout << token << endl;

token = strtok(NULL, " ");
}

return 0;
}

вопрос. почему, когда я ввожу строку, то окно работы программы закрывается? как сделать, чтобы оно не закрывалось. И так практически на каждой программе.

54 ответов в теме “VS 2008 – окно программы сразу закрывается”

  1. 36
    Cyber Max ответил:

    Спорить больше не буду.. каждый сам выбирает среду разработки в которой ему удобно добиваться поставленной цели :)

  2. 35
    Леонид Максимов ответил:

    ненене. иногда требуется и cl из MSVS

  3. 34
    Cyber Max ответил:

    да… но если есть готовое IDE зачем использовать внешний редактор?

    В вашем случае вообще незачем какие либо IDE использовать тогда.. будь то 2005 или 2008, просто DDK и SDK взял и вперед…

  4. 33
    Леонид Максимов ответил:

    как это зачем? это же можно сказать стандартный редактор.

  5. 32
    Cyber Max ответил:

    Не совсем понимаю зачем VC его поддерживать? если на то пошло можно взять SDK и не использовать никакуюстудию.. а компилить из командной строки… но помоему в VC 6.0 очень удачно сделана оболочка редактирования исходных кодов и отладки а если туда добавить Visual Assist то вообще красота – ничем не хуже старших студий и ресурсов практически не кушает… правда это мое мнение… ) каждый сам решает как ему удобней

  6. 31
    Cyber Max ответил:

    Простите, это Выо текстовом редакторе (vim) под *nix ? или о чем?

  7. 30
    Леонид Максимов ответил:

    о текстовом редакторе vim. кросплатформенном.

  8. 29
    Леонид Максимов ответил:

    VC 6.0 не поддерживает интеграцию с vim.

  9. 28
    Vlad Ламбар ответил:

    почему постоянно, просто есть свои "моменты", а в основном то самое что на 2005-й )

  10. 27
    Cyber Max ответил:

    гы… ну разве что… и мучаться постоянно..
    хотя можно и лицензию на VC 6.0 приобрести если очень хочется

  11. 26
    Леонид Максимов ответил:

    2008 EE можно использовать легально.

  12. 25
    Cyber Max ответил:

    Ребята выкеньте Вы эту студию 2008, вернитесь к Visual Studio 6.0 и никаких проблемм вообще не будет! Ставим последние SDK и получаем нормальную среду для разработки… а так будите мучаться до скончания веков…

  13. 24
    Vlad Ламбар ответил:

    так сделай что бы работало…в чом проблема, разберись с задачей детально, сядь перед MSDN и вперед…

  14. 23
    Anatoliy Simko ответил:

    #include <fstream>
    #include <iostream>
    #include <string.h>

    using namespace std;

    int main(void) {
    fstream in("test.txt",ios_base::in);
    in.seekg(0);
    char str[80];
    char fnlstr[80]="";
    while(!in.eof())
    {
    in.getline(str,80);

    cout << str << endl;

    char* token=strtok(str, " ");

    while (token)
    {
    strncat(fnlstr, token, 1);
    cout << token << endl;
    token = strtok(NULL, " ");
    }
    strcat(fnlstr,"\n");
    }
    in.close();
    fstream Out("test.txt",ios_base::out|ios_base::trunc);
    Out << fnlstr << endl;
    Out.close();
    return 0;
    }
    ващпе не работает

  15. 22
    Anatoliy Simko ответил:

    просто вся проблема в том, что писалось всё на эклипсе, а проверяю на Visual C++.

    ЗЫ
    За транслит спасибо) вредная привычка

  16. 21
    Anatoliy Simko ответил:

    типа – Error1error C2668: 'floor' : ambiguous call to overloaded function 15

  17. 20
    Vlad Ламбар ответил:

    double chis, znam;

    и будет тебе счастье

  18. 19
    Vlad Ламбар ответил:

    int celoe и float ost
    поменяй на double еще

  19. 18
    Артур Булакаев ответил:

    Ёпт, ну вы какие… Оставь ты эту библиотеку math, и положи на полочку.

    int celoe = chis/znam; // Эта строчка даст целую часть от деления.
    int ostdel = chis % znam; /*Получаем остаток от деления числителя на знаменатель. К примеру, для 9/4 это 1.*/
    float ost = ostdel / znam; /* Делим полученный остаток на знаменатель = получаем то, что после запятой.*/

    ЗЫ
    Ругается оно, ибо хочет сказать, что
    а)не знает функций floor и fmod
    б)Их аргументы записаны не верно.

  20. 17
    Жека Кирпичев ответил:

    И НИКОГДА не используй транслит в программах. Это смертный грех, страшнее которого – нету.

    Числитель и знаменатель по-английски – numerator / denominator
    Целая часть – integer part. Остаток – remainder.

  21. 16
    Vlad Ламбар ответил:

    ^+1 транслит – зло

  22. 15
    Vlad Ламбар ответил:

    как ругается…ворнинг, ерор, матом?)

  23. 14
    Anatoliy Simko ответил:

    ерор

  24. 13
    Vlad Ламбар ответил:

    или перед приведением после += (float)
    или даже static_cast

  25. 12
    Anatoliy Simko ответил:

    вот еще небольшой проблем….

    #include <iostream>
    #include <math.h>

    using namespace std;

    int main(void) {
    int chis, znam;

    cout << "Введите неправильную дробь:" << endl;
    cout << "числитель = ";
    cin >> chis;
    cout << "знаменатель = ";
    cin >> znam;

    int celoe = floor(chis/znam);
    float ost = fmod(chis, znam);

    cout << "\nРациональное число\nцелая часть=" << celoe << endl;
    if (ost==0)
    {
    cout << "Дробь правильная!"<< endl;
    }
    else
    {
    cout << "числитель=" << ost << endl;
    cout << "знаменатель=" << znam << endl;
    }
    return 0;
    }

    ругается на :

    int celoe = floor(chis/znam);
    float ost = fmod(chis, znam);

  26. 11
    Vlad Ламбар ответил:

    проблемы с линкером…посмотри настройки проекта…может увидиш что не так…сложно сказать…

  27. 10
    Anatoliy Simko ответил:

    проблему нашел… теперь вот такая хрень –
    Warning1warning C4305: '+=' : truncation from 'double' to 'float'c:\documents and settings\михаил\мои документы\visual studio 2008\projects\4\4\3.cpp 25

    и

    Warning2warning C4305: '+=' : truncation from 'double' to 'float'c:\documents and settings\михаил\мои документы\visual studio 2008\projects\4\4\3.cpp 42

  28. 9
    Anatoliy Simko ответил:

    25 и 42 это строки

  29. 8
    Жека Кирпичев ответил:

    Ну так прочитай сообщение об ошибке – подробнее уж некуда. У тебя значение 0.5 и 0.1 типа double в результате неявного преобразования типов обрубается до типа float; при этом может теряться точность.
    Пиши 0.5f и 0.1f.

  30. 7
    Vlad Ламбар ответил:

    иди просто system("pause");
    вконце =="

  31. 6
    Anatoliy Simko ответил:

    #include <conio.h> – это что даёт?

  32. 5
    Vlad Ламбар ответил:

    #include <conio.h> – это что даёт?

    подключает библиотеку где есть getch();, что не ясно?)))

  33. 4
    Anatoliy Simko ответил:

    та это понятно) а вот есть еще проблемки… сейчас напишу

  34. 3
    Артём Королёв ответил:

    в нем старые досовские функции объявлены, в некоторых случаях они очень полезны (покрайней мере при консольном интерфейсе).

  35. 2
    Anatoliy Simko ответил:

    #include <iostream>
    #include <stdlib.h>
    #include <math.h>

    using namespace std;

    int main(void)
    {

    int n=0;
    float x=1;
    float y=0;
    float q=0, z, sumz=0;

    while (x<2.1)
    {
    while (y<10.5)
    {
    z=((sin(x)+cos(y)+2)/(sin(x)*cos(y)+4))+4;
    sumz+=z;
    y+=0.5;
    n++;
    }
    x+=0.1;
    y=0;
    }

    float zmid=sumz/n;

    x=1; y=0; sumz=0; n=0;

    while (x<2.1)
    {
    while (y<10.5)
    {
    z=((sin(x)+cos(y)+2)/(sin(x)*cos(y)+4))+4;
    sumz+=z-zmid;
    y+=0.5;
    n++;
    }
    x+=0.1;
    y=0;
    }

    q=sqrt(sumz)/n;

    cout << "Zср = " << zmid << endl;
    cout << "q = " << q << endl;

    return 0;

    }

    отказываеццо работать… вылазят 2 ошибки.
    "Error1error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartupMSVCRTD.lib" и "Error2fatal error LNK1120: 1 unresolved externalsC:\Documents and Settings\Михаил\Мои документы\Visual Studio 2008\Projects\4\Debug\4.exe1" ч делать?

  36. 1
    Михаил Снетков ответил:

    Ха-ха ;)
    Вначале пиши:
    #include <conio.h>
    В конце перед return 0;
    getch();
    И программа будет ждать ;)

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.