ввод-вывод производится через консоль. Есть ли какой-либо элегантный способ проверять input, если, например, пользователь вводит буквы/символы
char str[len + 1];
memcpy(str,somechararray,len);
str[len] = 0;
System::String^ clistr = gcnew System::String(somechararray, 0, len);
HRESULT STDMETHODCALLTYPE XXX::Initialize(
LPCITEMIDLIST pidlFolder,
LPDATAOBJECT lpdobj,
HKEY hkeyProgID)
{
STGMEDIUM medium;
FORMATETC fe = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
if(SUCCEEDED(lpdobj->GetData(&fe,&medium))) {
UINT n = DragQueryFile((HDROP)medium.hGlobal,~0,NULL,0);
for (UINT i = 0; i < n; ++i) {
char filePath[MAX_PATH];
DragQueryFile((HDROP)medium.hGlobal,i,filePath,MAX_PATH);
printf("%s\n", filePath);
}
ReleaseStgMedium(&medium);
}
return S_OK;
}
// reset the node maps
for(y=0;y<m;y++)
{
for(x=0;x<n;x++)
{
closed_nodes_map[x][y]=0;
open_nodes_map[x][y]=0;
}
}
/****** после этих циклов x == n и y == m *******/
// create the start node and push into list of open nodes
n0=new node(xStart, yStart, 0, 0);
n0->updatePriority(xFinish, yFinish);
pq[pqi].push(*n0);
/****** и эта запись -- мимо массива *******/
open_nodes_map[x][y]=n0->getPriority(); // mark it on the open nodes map