一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 7384|回复: 24

[其他综合] 想学C,结果发现到处出错,新标准在哪里?

  [复制链接]
发表于 2011-11-14 22:35 | 显示全部楼层 |阅读模式
最近想把C语言学起来,抱了本谭浩强的C语言教材猛看,虽然不会英文,也是死记硬背下来一点,简单的程序都好理解了,准备上机实践一下,网上一搜索,C的编译系统都是旧的,尤其是大家常用的Turbo C 2.0,据说是淘汰的了,最后,分别下了据说要求较严的lcc-win32和DEV-CPP安装(C++),程序一上去,均报错(keil已经安装了,只是想先学会C语言,所以另外下载C的编译器),先是主函数main说是没有定义( main()和void main()都不行),那就int main(),这回通过了,但是紧接着printf指令也报错,想想谭浩强的C语言教材主函数不定义都可以用,而我这非定义不可,所以虽然谭浩强的教材提过输入和输出这两个函数可以省略包含头文件,而我从网上下载的例程也是没有包含,可能就错在这里,就给填上了,果然通过,但是我特意找的switch指令程序又报错了,错在case 1:sum=0;break;这句,这回不明白了,网上搜索不到C语言的新标准,只好请教各位了,提示是“stray '\161' in program”。DEV保存的是cpp的后缀名,如果对于学C没有影响,我想还是学会按较严的标准来编程较好,所以还是保留着DEV,是不是该舍弃DEV?另外:CASE后面直接调用函数也是不行,不知是不是定义上的问题?直接把函数内的复制进去就不报错了,但是好像结果不对,所以才特意从网上下载包含switch的程序看看,结果还是不明白,看似简单啊
 楼主| 发表于 2011-11-14 22:38 | 显示全部楼层
“    需要说明的是,C语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令。所以在本例中也可以删去第二行的包含命令#include<stdio.h>。”

再找的一个教材也是这么说的,是不是我选用的软件不对啊,还是标准改了?
回复

使用道具 举报

 楼主| 发表于 2011-11-14 22:52 | 显示全部楼层
下面是网上下载的计算总天数的程序,我换了别的编译器还是出错在case上,标点符合是在英文输入法下的不会错,那么是哪里出错啊:




#include<stdio.h>
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 default:printf("data error");break;
}
sum=sum+day;  /*再加上某天的天数*/
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}
回复

使用道具 举报

发表于 2011-11-14 23:22 | 显示全部楼层
switch
{



}后边是不是要有一个分号
回复

使用道具 举报

发表于 2011-11-14 23:32 | 显示全部楼层
有全角的tab
你把所有的空格去掉,用英文空格或者tab重新打出来就好了,我这里正常运行。
codeblock + gcc
回复

使用道具 举报

发表于 2011-11-14 23:35 | 显示全部楼层
stray '\161' in program 这种错误都是输入了不合法的字符,有的时候从windows往linux转的时候也会出现^M这种东西,用功能强一点的编辑器可以去掉
回复

使用道具 举报

 楼主| 发表于 2011-11-14 23:56 | 显示全部楼层
stray '\161' in program 这种错误都是输入了不合法的字符,有的时候从windows往linux转的时候也会出现^M这 ...
littlebadbay 发表于 2011-11-14 23:35 https://www.yleee.com.cn/images/common/back.gif



   还真是空格惹的祸,就只注意标点符号了,哪里想到网上拷贝的竟然标点符号没有问题而只是空格有问题,虽然宽度一个样,但是全部更改后就运行正常了,谢谢了!
回复

使用道具 举报

发表于 2011-11-15 23:13 | 显示全部楼层
单片机c语言 建议别看谭浩强的书

我觉得  有2本作为入门很不错的

C51单片机高效入门
作者 沈建良 徐玮  
出版时间 2007-01-01
出版社 机械工业出版社
页数 275页
价格 ¥36
ISBN 9787111201021

嵌入式C语言程序设计[专著]:使用MCS-51/郁文工作室编著;侯振鹏改编.—北京:人民邮电出版社,2006.07
  285页;26cm+1光盘
  
回复

使用道具 举报

发表于 2011-11-15 23:15 | 显示全部楼层
程序呢  直接下载学习板的配套代码修改就好
可以避免格式错误
回复

使用道具 举报

 楼主| 发表于 2011-11-16 13:08 | 显示全部楼层
谢谢了!找找看
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-5 00:09 , Processed in 0.036156 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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