Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows控制台上的C可选输入_C_Windows_Input_Console_Scanf - Fatal编程技术网

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>和删除>代码>代替 MalOC/但不喜欢使用<代码> STD::String < /C> >

< P> > C中的同一件事,而不是C++使用<代码> FGED<代码>,它工作:

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风格的方法?