用户在scanf中键入null终止符

6 c input scanf

用户是否可以在输入中键入null终止符,使用scanf,因此输入的长度为0?

char msg[1000];
scanf("%1000s",msg); // the user would type nothing: '' or '\0'
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 8

在许多系统上,答案是"是".

通常,神奇的序列是Control-@.

@的字符代码通常为64,比A(65)的字符代码少一个.Control-A是字符代码1; 少一个是字符代码0,又名'\0'.

请注意,要获得零长度输入,您必须键入空字节作为第一个非空格字符,并且仍然需要按返回以输入输入.您的程序会发现很难可靠地识别空字节后输入的其他内容.