我无法使用此代码,因为我无法写任何文本。
我该如何解决阅读问题?

#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缓冲区的大小需要为格式说明符cCsS指定为第二个参数。一个例子:

char str[1024];

printf("Input text: ");
scanf_s("%s", str, 1024);

该文档还指出,如果潜在的缓冲区溢出,则不会将任何内容写入缓冲区。

关于c++ - Scanf_s在C++中为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20904839/

10-09 09:10