我无法使用此代码,因为我无法写任何文本。
我该如何解决阅读问题?
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{
char str[1024];
printf("Input text: ");
scanf_s("%c", str);
_asm
{
//some assembly code
}
printf("\n\nResult = %s", str);
printf("\n\n[Press any key]");
_getch();
return 0;
}
结果是
Input text: sdf
Result =
[Press any key]
有任何想法吗?我使用Visual Studio 2013。
最佳答案
我不知道函数scanf_s
,所以我查找了documentation。它指出,与scanf
相比,scanf_s
缓冲区的大小需要为格式说明符c
,C
,s
和S
指定为第二个参数。一个例子:
char str[1024];
printf("Input text: ");
scanf_s("%s", str, 1024);
该文档还指出,如果潜在的缓冲区溢出,则不会将任何内容写入缓冲区。
关于c++ - Scanf_s在C++中为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20904839/