[问题] 关于字符和字串显示错误问题(已解决)

楼主: bat205 (时速200km)   2014-05-01 16:53:47
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Visual Studio 2013
win7 64bit
问题(Question):
为两题洪维恩的C语言教学手册范例 prog4_13和prog4_15
喂入的资料(Input):
Q1:输入R字符
Q2:输入字串Alice
预期的正确结果(Expected Output):
Q1:ch=R, ASCII code is 82
Q2:Hi, Alice, How are you?
错误结果(Wrong Output):
Q1:出现无法正确启动(0xc0000142),错误视窗如下
http://ppt.cc/q4KU
Q2:字串Alice无法显示出来,错误视窗如下
http://ppt.cc/WnE4
程式码(Code):(请善用置底文网页, 记得排版)
Q1:/* prog4_13, 输入字符 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch;
printf("Input a character:");
scanf_s("%c",&ch); /* 由键盘输入字符并指定给变量ch */
printf("ch=%c, ascii code is %d\n",ch,ch);
system("pause");
return 0;
}
Q2:/* prog4_15, 输入字串 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char name[10]; /* 宣告字符阵列 */
printf("What's your name: ");
scanf_s("%s",name); /* 输入字串,并由字符阵列name所接收 */
printf("Hi, %s, How are you?\n",name); /* 印出字串的内容 */
system("pause");
return 0;
}
补充说明(Supplement):
完全依书上范例无更动程式码
已google过,但都无法解决问题
恳请各位帮忙.
作者: diabloevagto (wi)   2014-05-01 16:56:00
scanf_s 改成 scanf
楼主: bat205 (时速200km)   2014-05-01 17:03:00
如果不改scanf_s的话会无法建置http://ppt.cc/zJ9h
作者: holik0123   2014-05-01 19:32:00
需要指定buffer长度吗?
作者: EdisonX (卡卡兽)   2014-05-01 20:19:00
scanf_s("%s",name, _countof(name));
作者: h520 (恩哈恩哈恩哈哈)   2014-05-03 01:47:00
建议还是多使用标准函式库 其他像bzero之类的非标准 大多NG
楼主: bat205 (时速200km)   2014-05-04 16:20:00
多谢各位解答,在属性那加上_CRT_SECURE_NO_WARNINGS就可以不使用scanf_s了

Links booklink

Contact Us: admin [ a t ] ucptt.com