gpt4 book ai didi

c - 将 scanf 与 char 数组一起使用时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:52 25 4
gpt4 key购买 nike

我是一名学习 C 的学生(我以前的经验都是 python),但在调试程序时遇到了问题。以下部分尤其让我感到困惑——我认为我使用的 scanf 或 printf 不正确(我必须使用这两个,没有其他功能。)

目的是首先扫描这个字符串,然后将它传递给函数对其进行一些处理,但看起来它在扫描时失败了。

#include "stdio.h"

void main(){
char hexInput[100];
printf("enter the hexidecimal to be converted");
scanf_s("%s",hexInput);
printf("%s\n",hexInput);
}

以上打印为空

scanf_s("%s",hexInput);
printf("%s\n",hexInput);

打印一个空行

scanf_s("%s",hexInput);
printf("%s",hexInput);

什么都不打印。

任何指导将不胜感激。一般来说,我一直使用的输入是字符和数字的组合(该项目处理十六进制字符串),但任何字符串都应该适用于此。我在网上广泛寻找解决方案,我确信这是显而易见的,但我还没有找到它。

我一直在用Visual Studio 2008编译调试。

最佳答案

scanf_s 接收另一个参数。您缺少的是缓冲区大小。来自 MSDN :

Unlike scanf and wscanf, scanf_s and wscanf_s require the buffer size to be specified for all input parameters of type c, C, s, S, or string control sets that are enclosed in []. The buffer size in characters is passed as an additional parameter immediately following the pointer to the buffer or variable.

所以,尝试这样的事情:

#include "stdio.h"

void main(){
char hexInput[100];
printf("enter the hexidecimal to be converted");
scanf_s("%s",hexInput, 100);
printf("%s\n",hexInput);
}

关于c - 将 scanf 与 char 数组一起使用时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356747/

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