Re: [问题] 关于字符和字串显示错误问题

楼主: RealJack   2014-05-01 21:19:01
scanf_s不是ANSI C的函式
应该是微软的library里面的函式,scanf的安全版
其实还是可以在visual studio用scanf
http://kevincg.wordpress.com/2008/06/12/warningc4996/
意思就是不让compiler把这种警告当错误看待
建议你换个GNU的编译器来练习标准的C
例如: code::block也不错用,是个不错的IDE
※ 引述《bat205 (时速200km)》之铭言:
: 开发平台(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过,但都无法解决问题
: 恳请各位帮忙.
作者: danny8376 (钓到一只猴子@_@)   2014-05-02 02:26:00
Code::Block不一定用GUN compiler啊 用VC的也行www
作者: bat205 (时速200km)   2014-05-04 16:25:00
多谢~参考您的方式不把scanf当错误看待就可以正常了

Links booklink

Contact Us: admin [ a t ] ucptt.com