繁体   English   中英

使用 scanf_s 获取字符串值的问题

[英]problem with using scanf_s to get a string value

我尝试使用 scanf_s 从用户那里获取日期和月份的输入(带有 Visual Studio 的编译器总是要求您使用 scanf_s,这就是我使用它的原因)。 它允许我输入日期的输入,但是当我输入月份的输入(作为字符串)时,它会退出代码并且不执行 rest。 如果我先为字符串放置scanf_s,在我输入输入后它会退出代码。我将如何解决这个问题?

#include "iostream."
#include "string.h"
#include "stdlib.h"

void main()
{
    char month[10];
    int date;

    printf("enter date\n");
    scanf_s("%d", &date);

    printf("enter month\n");
    scanf_s("%s", month);

    printf("Month: %s Date %d\n", month, date);
}




我刚刚禁用了 scanf_s 的警告,它允许我使用 scanf 。 我还尝试使用 sizeof 语句(例如 scanf_s("%s", string1, sizeof string1)),这似乎不需要我禁用警告就可以工作。

感谢大家的帮助,并留意我遇到的进一步问题,因为还有更多问题来自哪里!

您必须指定为字符串分配的大小,例如

scanf_s("%s", month, sizeof month);

请注意,如果用户输入的数据超出缓冲区的容量,调用将不会复制任何数据,包括尾随的 '\0'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM