C语言char数组 字符串读入问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言char数组 字符串读入问题相关的知识,希望对你有一定的参考价值。
我在VS2013中写的C代码,创建了一个char类型的数组name用于存放姓名,为何使用scanf_s读入不了?
另外,当我直接给name赋值的话是正常的,而且以前用scanf_s读入其他类型的变量都是没问题的,具体请看图:
这样改:
#include "stdafx.h"
#include <stdlib.h>
#define PRAISE "What a super marvelous name!"
int main()
char name[40];
printf("What's your name?\\n");
scanf_s("%40s", name, _countof(name));
printf("Hello, %s, %s\\n", name, PRAISE);
return 0;
输出效果:
追问厉害啊!怎么解决的,能给我解释下原理吗?
追答你直接看MSDN的文档吧,它上面有详细的说明的,下面是链接:
http://msdn.microsoft.com/query/dev12.query?appId=Dev12IDEF1&l=ZH-CN&k=k("stdio%2Fscanf_s");k(scanf_s);k(DevLang-C%2B%2B);k(TargetOS-Windows)&rd=true
你直接看备注部分就可以了
参考技术A 改成scanf不就行了!追问是这个问题吗?因为一些安全性的问题VS不知道从哪个版本开始就强制编译器检查你是否用的是scanf_s()函数而不是scanf()函数,虽说好像可以在哪个设置里面关闭的。
以上是关于C语言char数组 字符串读入问题的主要内容,如果未能解决你的问题,请参考以下文章