<<C和指针>>第1章之编程练习心得20140703

其实用C用了几年了,大多数是单片机C语言。C语言的好书也看过几本,但是感觉对C精通还得走很长的路。从C和指针开始,从博客开始,坚持把这本书的每道题都做一遍思考一遍,不管再简单的语句也要敲一敲,觉得重要的,经常遗忘的也写下来。

#define MAX_INPUT 100UL
void main()
{
int quantity,price;
unsigned char department[MAX_INPUT]=" ";
scanf("%d,%d,%s",&quantity,&price,&department);//note that , is needed when input from keyboard,if there is no ',',then ','is not needed(space enter to 
//scanf("%s",&department);//seperate the adjacent characters
printf("%d,%d,%s \n",quantity,price,department);
//printf("%s\n",department);
}

说实话,除了大一时经常用到scanf,以后几乎就没用到了。scanf是从标准输入流stdin(标准输入设备,一般是键盘)中读取内容的通用子程序,可以依次读取多个字符,并保存在对应地址变量中。

scanf("%d%d",&a,&b);

1 如果ab都成功读入,返回值就是2,;

2 只读取一个,返回值是1;

3 都没有读取,返回值0;

4 如果遇到错误或者end of file,返回值为EOF;

       scanf("%d,%d,%s",&quantity,&price,&department);注意如果格式控制符项之间有逗号的话,键盘输入时要用 逗号 隔开,如果没有逗号,输入时用 空格,回车键或tab键隔开。

      我调试时遇到一个很奇怪的问题,字符串读不进来。前两个quantity和price可以正常读入并打印。后来发现,我的输入法默认是中文,在输入数字时,中文状态的逗号会被自动变为半角字符逗号,这个我是注意到了,但是在输入字符前的逗号没有变为半角字符逗号,而且此时字符前多出了一个空格,要知道如果scanf遇到空格会认为赋值结束的。这就是问题所在。在输入前切换到英文输入法,就没有这个问题了。还发现,如果连续输入数字,逗号会自动变为半角字符逗号。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值