Работаю в 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;
}
вопрос. почему, когда я ввожу строку, то окно работы программы закрывается? как сделать, чтобы оно не закрывалось. И так практически на каждой программе.
15 января 2009 в 0:04
Спорить больше не буду.. каждый сам выбирает среду разработки в которой ему удобно добиваться поставленной цели
14 января 2009 в 18:04
ненене. иногда требуется и cl из MSVS
13 января 2009 в 23:05
да… но если есть готовое IDE зачем использовать внешний редактор?
В вашем случае вообще незачем какие либо IDE использовать тогда.. будь то 2005 или 2008, просто DDK и SDK взял и вперед…
13 января 2009 в 23:03
как это зачем? это же можно сказать стандартный редактор.
13 января 2009 в 0:00
Не совсем понимаю зачем VC его поддерживать? если на то пошло можно взять SDK и не использовать никакуюстудию.. а компилить из командной строки… но помоему в VC 6.0 очень удачно сделана оболочка редактирования исходных кодов и отладки а если туда добавить Visual Assist то вообще красота – ничем не хуже старших студий и ресурсов практически не кушает… правда это мое мнение… ) каждый сам решает как ему удобней
12 января 2009 в 23:04
Простите, это Выо текстовом редакторе (vim) под *nix ? или о чем?
12 января 2009 в 23:04
о текстовом редакторе vim. кросплатформенном.
12 января 2009 в 23:03
VC 6.0 не поддерживает интеграцию с vim.
11 января 2009 в 16:03
почему постоянно, просто есть свои "моменты", а в основном то самое что на 2005-й )
11 января 2009 в 15:04
гы… ну разве что… и мучаться постоянно..
хотя можно и лицензию на VC 6.0 приобрести если очень хочется
11 января 2009 в 1:03
2008 EE можно использовать легально.
10 января 2009 в 16:02
Ребята выкеньте Вы эту студию 2008, вернитесь к Visual Studio 6.0 и никаких проблемм вообще не будет! Ставим последние SDK и получаем нормальную среду для разработки… а так будите мучаться до скончания веков…
10 января 2009 в 14:01
так сделай что бы работало…в чом проблема, разберись с задачей детально, сядь перед MSDN и вперед…
10 января 2009 в 13:05
#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;
}
ващпе не работает
10 января 2009 в 13:05
просто вся проблема в том, что писалось всё на эклипсе, а проверяю на Visual C++.
ЗЫ
За транслит спасибо) вредная привычка
10 января 2009 в 13:04
типа – Error1error C2668: 'floor' : ambiguous call to overloaded function 15
10 января 2009 в 13:04
double chis, znam;
и будет тебе счастье
10 января 2009 в 13:04
int celoe и float ost
поменяй на double еще
10 января 2009 в 13:04
Ёпт, ну вы какие… Оставь ты эту библиотеку math, и положи на полочку.
int celoe = chis/znam; // Эта строчка даст целую часть от деления.
int ostdel = chis % znam; /*Получаем остаток от деления числителя на знаменатель. К примеру, для 9/4 это 1.*/
float ost = ostdel / znam; /* Делим полученный остаток на знаменатель = получаем то, что после запятой.*/
ЗЫ
Ругается оно, ибо хочет сказать, что
а)не знает функций floor и fmod
б)Их аргументы записаны не верно.
10 января 2009 в 13:04
И НИКОГДА не используй транслит в программах. Это смертный грех, страшнее которого – нету.
Числитель и знаменатель по-английски – numerator / denominator
Целая часть – integer part. Остаток – remainder.
10 января 2009 в 13:04
^+1 транслит – зло
10 января 2009 в 13:03
как ругается…ворнинг, ерор, матом?)
10 января 2009 в 13:03
ерор
10 января 2009 в 13:02
или перед приведением после += (float)
или даже static_cast
10 января 2009 в 13:02
вот еще небольшой проблем….
#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);
10 января 2009 в 13:01
проблемы с линкером…посмотри настройки проекта…может увидиш что не так…сложно сказать…
10 января 2009 в 13:01
проблему нашел… теперь вот такая хрень –
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
10 января 2009 в 13:01
25 и 42 это строки
10 января 2009 в 13:01
Ну так прочитай сообщение об ошибке – подробнее уж некуда. У тебя значение 0.5 и 0.1 типа double в результате неявного преобразования типов обрубается до типа float; при этом может теряться точность.
Пиши 0.5f и 0.1f.
10 января 2009 в 13:00
иди просто system("pause");
вконце =="
10 января 2009 в 13:00
#include <conio.h> – это что даёт?
10 января 2009 в 13:00
#include <conio.h> – это что даёт?
подключает библиотеку где есть getch();, что не ясно?)))
10 января 2009 в 13:00
та это понятно) а вот есть еще проблемки… сейчас напишу
10 января 2009 в 13:00
в нем старые досовские функции объявлены, в некоторых случаях они очень полезны (покрайней мере при консольном интерфейсе).
10 января 2009 в 13:00
#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" ч делать?
10 января 2009 в 12:05
Ха-ха
Вначале пиши:
#include <conio.h>
В конце перед return 0;
getch();
И программа будет ждать