鱼C论坛

 找回密码
 立即注册
查看: 5425|回复: 12

我是c语言新手 。。

[复制链接]
发表于 2013-8-14 18:05:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include"stdio.h"

  2. void main()
  3. {
  4.         char a;
  5.         a=getchar();
  6.         if(a<32){printf("<32");}
  7.         else if(a>='0'&&a<='9'){printf("number");}
  8.         else if(a>='A'&&a<='Z'){printf("a big ");}
  9.         else if(a>='a'&& a <='z'){printf("a samll ");}
  10.         else if(a>'z'){printf("haha");}
  11. }
复制代码
  1. void main(){        char a;        scanf_s("%c",&a);        if(a<32){printf("<32");}        else if(a>='0'&&a<='9'){printf("number");}        else if(a>='A'&&a<='Z'){printf("a big ");}        else if(a>='a'&& a <='z'){printf("a samll ");}        else if(a>'z'){printf("haha");}}
复制代码
scanf_s("%c",&a); 和a=getchar(); 有什么区别  ?

不都是将输入字符 以ascll存入a地址中们 ,为什么比较大小结果不同
我是昨天才刚刚看小甲鱼视频学习c语言的 ,希望大神能讲的详细点。我没论坛币 就没法奖励给大家了- -

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-14 18:16:44 | 显示全部楼层
C语言有很多的编译器,它们都支持一个C语言的标准库。scanf是C语言标准库里的函数,所以各个C语言编译器都支持它。
此外,为了扩展C语言的功能(其实是为了赚钱),各个C编译器厂商都在自己的编译器里对C语言进行一些扩展,比如微软在VS2005以上版本提供了一个函数scanf_s,它不是scanf函数(而是它的增强版),所以用法不一样,具体用法可以自己查阅MSDN。
好吧,直接说如何修改你的程序,把scanf_s("%c",&a); 改为scanf_s("%c",&a,1);        
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 19:19:56 | 显示全部楼层

scanf_s("%c",&a,1);         后面这个1 是什么意思? 说说用法 我用的是vs2012
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 19:56:18 | 显示全部楼层
我发言。一是为了升级,二是为了看看隐藏的内容:lol:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 20:24:06 | 显示全部楼层
仰望天上的光 发表于 2013-8-14 18:16
C语言有很多的编译器,它们都支持一个C语言的标准库。scanf是C语言标准库里的函数,所以各个C语言编译器都支 ...


scanf_s("%c",&a,1);         后面这个1 是什么意思? 说说用法 我用的是vs2012
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 20:31:25 | 显示全部楼层
楼上解释的很详细
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 21:20:50 | 显示全部楼层
好像这个1  好多人都解释不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 21:29:39 | 显示全部楼层
sqhs008 发表于 2013-8-14 21:20
好像这个1  好多人都解释不了

某群大姐姐告诉我
上海-陈洁(XXX) 20:28:06
缓冲区大小
上海-陈洁(XXX) 20:28:11
你可以这么理解 字符长度
上海-陈洁(XX) 20:29:16
就是讲 你指定了长度 如果太长会被截
上海-陈洁(XX) 20:29:22
输入太长会被截
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-14 23:24:27 | 显示全部楼层
好人 发表于 2013-8-14 20:24
scanf_s("%c",&a,1);         后面这个1 是什么意思? 说说用法 我用的是vs2012

1是说明只读入1个字符。既然不了解为什么不去查MSDN呢?如果不会查,为什么要用scanf_s而不用scanf呢?学编程,各种函数的用法不是用来记的,是用来查的。如果英文不好,可以先找C标准库的中文函数手册,就用手册上的函数,用到了就查,养成这个习惯很重要。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-15 08:57:52 | 显示全部楼层
仰望天上的光 发表于 2013-8-14 23:24
1是说明只读入1个字符。既然不了解为什么不去查MSDN呢?如果不会查,为什么要用scanf_s而不用scanf呢?学 ...

我是新手 不懂 怎么查!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-15 09:00:50 | 显示全部楼层
好人 发表于 2013-8-15 08:57
我是新手 不懂 怎么查!

不懂 怎么查的话,我建议你不要使用scanf_s,使用scanf好了C语言标准函数库baidu下能找到很多的中文文档。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-15 09:02:16 | 显示全部楼层
仰望天上的光 发表于 2013-8-15 09:00
不懂 怎么查的话,我建议你不要使用scanf_s,使用scanf好了C语言标准函数库baidu下能找到很多的中文文档。

那样会出现 错误。。得#pragma warning(disable : 4996)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-15 09:30:52 | 显示全部楼层
好人 发表于 2013-8-15 09:02
那样会出现 错误。。得#pragma warning(disable : 4996)

那是警告,不是错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-5 18:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表