Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

03.08.2009, 19:37
|
|
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме: 548128
Репутация:
104
|
|
> пруфлинк?
погуглил, и что то нечего внятного не нашел. Возможно я и ошибся в своем утверждение, но вот то что для большинства (если не для всех) POSIX функций, есть аналоги в стандартной библиотеки (crt, stl) это факт.
Да и к тому же проблема mr.The решена, так что считаю что вопрос исчерпан.
ps: Хотя да, POSIX совместимость гарантирует, то, что приложение без перекомпиляции будет работать под _всеми_ POSIX совместимыми системами.
|
|
|

03.08.2009, 19:39
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
холивар детектед. способ __mad'а замечательно работает под виндой, компилятор mingw gcc. всем спасибо.
осталось только _ttps://forum.antichat.ru/showpost.php?p=1424458&postcount=3402
|
|
|

06.08.2009, 02:25
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Доброе время суток.
Возникла проблема: не пишет в конец массива diceArray. Даже не знаю в чем проблема. Ошибка в процедуре initArray в последней комбинации(6,6,6,6,6,6).
Код:
#include <algorithm>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <iostream>
using namespace std;
void initArray(int **array); // заполнение массива нужными числами
bool isEnd(int *array, const int size);// признак окончания заполнения
void normalize(int *array, const int size);// проверка вхождения в диапозон
void calculateSums(int **array, const int xSize, const int ySize);// подсчет общего количества сумм
int currentSum(int *array, const int xSize);// сумма строки
//----main()
int main(int argc, char *argv[])
{
const int ySize = 6 * 6 * 6 * 6 * 6 * 6; // количество вариантов
const int xSize = 6; // всего кубиков
int **diceArray = new int*[ySize];
for (int i = 0;i < ySize;++i)
diceArray[i] = new int[xSize];
initArray(diceArray);
calculateSums(diceArray, xSize, ySize);
for (int i = 0;i < ySize;++i)
delete []diceArray[i];
delete []diceArray;
diceArray = NULL;
system("pause");
return 0;
}
//----initArray()
void initArray(int **array)
{
int combination[6] = {1,1,1,1,1,1};
for (int i = 0;!isEnd(combination, 6);i++)
{
copy(combination, combination+6, array[i]);
combination[5]++;
normalize(combination, 6);
}
}
//----isEnd()
bool isEnd(int *array, const int size)
{
if (count(array, array+size, 6) == 6)
return true;
else
return false;
}
//----normalize()
void normalize(int *array, const int size)
{
for (int i = size - 1;i >= 0;i--)
{
if (array[i] == 7)
{
array[i] = 1;
array[i-1]++;
}
}
}
//----calculateSums()
void calculateSums(int **array, const int xSize, const int ySize)
{
vector<int> sums;
int current;
int counter = 0;
fstream file("out.txt", ios_base::out);
if (!file)
{
cout << "shit happened";
exit(1);
}
for (int i = 0;i < ySize;++i)
{
current = currentSum(array[i], xSize);
for (int j = 0;j < ySize;++j)
if (current == currentSum(array[j], xSize))
counter++;
sums.push_back(counter);
for (int k = 0;k < xSize;++k)
{
file << array[i][k];
}
file << ":" << counter << endl;
counter = 0;
}
vector<int>::iterator iter = max_element(sums.begin(), sums.end());
file << "\n\nHighest combination is => ";
file << *iter;
file.close();
}
int currentSum(int *array, int xSize)
{
int current = 0;
for (int i = 0;i < xSize;++i)
current += array[i];
return current;
}
|
|
|

06.08.2009, 02:35
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Сообщение от mr.The
средствами с++ нужно выполнить команду в "командной строке" и получить её результат. как? перенаправление в файл не предлагать.
use system(const char* command);
|
|
|

06.08.2009, 05:45
|
|
Новичок
Регистрация: 22.03.2009
Сообщений: 13
Провел на форуме: 43139
Репутация:
0
|
|
Нет все таки не разобрался. С помощью какого метода можно получить список открытых окон? ИМенно окон а не процессов!
Последний раз редактировалось Antikvazar; 06.08.2009 в 13:33..
|
|
|

06.08.2009, 10:14
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Классы... компоненты... - недоверяю.
WinAPI и тока ВыньАпи
Код:
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
HANDLE hSnap;
PROCESSENTRY32 proc;
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (!hSnap)
{
printf("ERROR");
}
else
{
if (Process32First(hSnap, &proc))
{
printf("%s\n", proc.szExeFile);
while (Process32Next(hSnap, &proc))
{
printf("PID: %i\t NAME: %s\n",proc.th32ProcessID, proc.szExeFile);
}
}
}
return 0;
}
|
|
|

06.08.2009, 11:01
|
|
Новичок
Регистрация: 06.10.2008
Сообщений: 3
Провел на форуме: 122701
Репутация:
5
|
|
Здравствуйте
У меня возник вопрос, каким образом на C организовать быстрое удаление строки из файла ?, ну как это например сделано во многих брутах(очищение source файла), веть перезаписывать каждый раз файл(а он может достигать внушительных размеров) не есть гуд.
|
|
|

06.08.2009, 13:52
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
|
|
|

06.08.2009, 14:31
|
|
Новичок
Регистрация: 22.03.2009
Сообщений: 13
Провел на форуме: 43139
Репутация:
0
|
|
спасибо раскал, но у меня еще специфичнее задача нужно вытаскивать данные из окна внутри которого есть список(чат\textbox) который обновляется такое вообще возможно сделать?
|
|
|

06.08.2009, 14:36
|
|
Познающий
Регистрация: 27.05.2009
Сообщений: 44
Провел на форуме: 105684
Репутация:
-1
|
|
как написать свои собственыи ICQ клент на с++ ? искал в гоогле нашол тока пример на делфи а мине надо иммено с++ хачу написат прогу каторая отвылает сообшения и получает их конзолную бес винапи простенкую ест у каво какие иди?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|