【发布时间】:2014-03-12 15:47:59
【问题描述】:
我是一名学习 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,但您的问题表明您必须使用scanf。另外,除非我遗漏了什么,否则第二个代码块与第一个代码块相同,但你说它的打印方式不同...... -
根据
scanf_s上的文档,您需要传递另一个参数来指示缓冲区的长度。