三断笛 2015年09月07日
VS中scanf的问题
不废话,上代码。刚使用VS2013教小舅子写C,从键盘输入一个字符串,复制到另一个字符串数组。书上照抄的,唯一不同的是,把scanf换成了scanf_s,换了以后scanf_s死活读不到键盘输入的内容(如abc),换成scanf就行,在scanf_s最后加上长度参数也行。按照微软scanf_s的字义,最后一个长度参数是可选的,不应该造成如此大的差别,请大神解释为何scanf_s如此神奇。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char s1[20], s2[20], *p1 = s1, *p2 = s2;
fflush(stdin);
scanf_s("%s", s1);
//gets_s(s1, 20);
for (; *p1 != 0; p1++, p2++){
*p2 = *p1;

}

*p2 = '\0';
printf("%s\n", s2);
getch();

return 0;
}
...全文
153 点赞 收藏 7
写回复
7 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告