Windows控制台上的C可选输入
此代码不起作用:Windows控制台上的C可选输入,c,windows,input,console,scanf,C,Windows,Input,Console,Scanf,此代码不起作用: _tprintf(TEXT("Enter password or press enter to skip: ")); pszPassword = new TCHAR[100]; int numFields = _tscanf_s(TEXT("%s"), pszPassword, 100); if (numFields == 0) // never reached { delete[] pszPassword; pszPassword = NULL; } 按en
_tprintf(TEXT("Enter password or press enter to skip: "));
pszPassword = new TCHAR[100];
int numFields = _tscanf_s(TEXT("%s"), pszPassword, 100);
if (numFields == 0) // never reached
{
delete[] pszPassword;
pszPassword = NULL;
}
按enter键不会使scanf
中止对输入的解析,因为它会跳过空白,直到找到非空白字符
我怎样才能达到期望的行为
<>程序实际上是C,我使用<代码>新< /COD>和
TCHAR *pszPassword = malloc(100 * sizeof (TCHAR));
_tprintf(TEXT("Enter password or press enter to skip: "));
_fgetts(pszPassword, 100, stdin) ;
if (pszPassword[0] == '\n')
{
free(pszPassword) ;
pszPassword = NULL;
}
不要对字符串进行扫描。使用fgets等。是否有C风格的方法?