gpt4 book ai didi

c - 使用 scanf() 读取不超过字符串的大小

转载 作者:太空狗 更新时间:2023-10-29 16:24:02 24 4
gpt4 key购买 nike

编辑:对于我的类(class),我必须使用 scanf。所以推荐其他输入方式不是我要的解决方案(如果有涉及scanf的)。


如果我正在为一个小项目(例如游戏)读取用户输入。假设我问 你想玩吗? 这将接受 yesno 的回答。所以我写了一些像这样的简单代码:

#include <stdio.h>

int main(void)
{
char string[3]; //The max number of letters for "yes".

printf("Would you like to play?");
scanf("%s", string);
}

所以这段代码应该简单地要求他们输入yesno。我正在将我的 char 数组 的长度设置为大小 3。这样它就足够大以容纳 yesno。但是,如果有人输入无效输入,例如 yesss,我知道之后如何比较字符串以处理此类事件,但这在技术上/可能不会覆盖我声明的其他局部变量,因为它会超出我的数组长度吗?如果是这样,有没有办法处理这个问题以限制 3 个输入字符之类的?如果不是,它为什么/怎么知道只输入 3 的大小?

最佳答案

您的数组需要能够容纳四个 char,因为它还必须包含 0 终止符。固定后,指定格式的最大长度,

scanf("%3s", string);

确保 scanf 读取不超过 3 个字符。

关于c - 使用 scanf() 读取不超过字符串的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12306591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com