Самое простое и, возможно, наиболее эффективное решение проблемы, как указано:
.input_dataobjects |=
map( if .datatype == "somedatatype1"
then .name = "sonemewname1"
else . end )
Поскольку MinGW используют "_A_SYSTEM" вместо этого "_O_TEXT". Так портировал Quintin Willison , ответ следующие:
#include <io.h>
void SetStdOutToNewConsole()
{
// allocate a console for this app
AllocConsole();
// redirect unbuffered STDOUT to the console
HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
int fileDescriptor = _open_osfhandle((intptr_t)consoleHandle, _A_SYSTEM);
FILE *fp = _fdopen( fileDescriptor, "w" );
*stdout = *fp;
setvbuf( stdout, NULL, _IONBF, 0 );
// give the console window a nicer title
SetConsoleTitle(L"Debug Output");
// give the console window a bigger buffer size
CONSOLE_SCREEN_BUFFER_INFO csbi;
if ( GetConsoleScreenBufferInfo(consoleHandle, &csbi) )
{
COORD bufferSize;
bufferSize.X = csbi.dwSize.X;
bufferSize.Y = 9999;
SetConsoleScreenBufferSize(consoleHandle, bufferSize);
}
}
Вот страница, которая расскажет вам, как это сделать, включая пример кода.
Вы должны создать консольное окно с помощью AllocConsole(), затем связать стандартные файловые дескрипторы C с дескрипторами HANDLE нового консольного окна.
Я знаю, что делал это раньше, используя функцию AllocConsole , но Я также помню, что это было немного сложнее, чем я ожидал.
Быстрый поиск в Google на AllocConsole дает, по-видимому, статью из журнала разработчиков Windows , которая кажется актуальной. Оттуда следующее кажется похожим на то, что я припоминаю, хотя и расплывчато.
void SetStdOutToNewConsole()
{
int hConHandle;
long lStdHandle;
FILE *fp;
// Allocate a console for this app
AllocConsole();
// Redirect unbuffered STDOUT to the console
lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
}
Вам понадобится окно консоли. Безусловно, самый простой способ получить его - это изменить параметр компоновщика: Project + Properties, Linker, System, SubSystem = Console. Добавьте метод main ():
int main() {
return _tWinMain(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOW);
}