Просто пример с []
и at()
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
v.push_back(123);
v.resize(0);
try {
std::cout << "at() ";
std::cout << v.at(0) << std::endl;
}
catch (std::exception e) {
std::cout << e.what() << std::endl;
}
std::cout << "[] " << v[0] << std::endl; // all can append
return 0;
}
Для меня исполнение
at() std::exception
[] 123
Это ищет вход? В частности, я замечаю, что Вы перенаправляете stdin, но не закрываете его - поэтому, если он будет читать из stdin, то он зависнет.
попытайтесь заменить WaitForExit () с чем-то вроде этого:
while (!p.WaitForExit(100))
Console.Write(".");
Другой вещью попробовать является установка UseShellExecute к истинному, и наблюдение консоли быть порожденной. Посмотрите эту страницу для запутанности того параметра: http://blogs.msdn.com/jmstall/archive/2006/09/28/CreateNoWindow.aspx
Порожденный процесс все еще жив, в то время как WaitForExit () выполняется? Можно ли присоединить отладчик к нему?