 <p>You need to initialise the <code>dwSize</code> member of <code>CONSOLE_CURSOR_INFO</code>:</p> <pre><code>CONSOLE_CURSOR_INFO CURSOR; CURSOR.dwSize = 1; CURSOR.bVisible = FALSE; </code></pre> <p>From the docs for <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms686019%28v=vs.85%29.aspx" rel="nofollow">SetConsoleCursorInfo</a>:</p> <blockquote> <p>The dwSize member of the CONSOLE_CURSOR_INFO structure specifies the percentage of a character cell that is filled by the cursor. If this member is less than 1 or greater than 100, SetConsoleCursorInfo fails.</p> </blockquote> <p>Note also from the same page</p> <blockquote> <p>Return value</p> <p>If the function succeeds, the return value is nonzero. <br>If the function fails, the return value is zero. To get extended error information, call GetLastError.</p> </blockquote> <p>Checking the return value would have helped you figure out what was going wrong.</p>