//这是一个计算字符数 ,单词数,行数的小算法,但是在vc++6.0中运行出现编译错误
//感觉上应该没有问题呀!求救!!
#include <stdio.h>
#define OUT 0;
#define IN 1;
main ()
{
int c ;
int nl,nw,nc,state;//nl行数,nw单词数,nc字符数
nl = nw = nc = 0;
state = OUT;
while ((c = getchar())!=EOF)
{
putchar(c);
if(c=='\n')
{
nl++;
}
if(c==' '||c=='\t'||c=='\n')
{
state = OUT;
}
else if(state == OUT)
{
state = IN;
nw++;
}
nc++;
}
printf("%d,%d,%d",nc,nw,nl);
}
//错误如下
C:\Users\liyingjie\Desktop\chapter1-5-4.c(3) : warning C4005: 'IN' : macro redefinition
c:\users\liyingjie\desktop\chapter1-5-4test.c(0) : see previous definition of 'IN'
C:\Users\liyingjie\Desktop\chapter1-5-4.c(21) : error C2143: syntax error : missing ')' before ';'
C:\Users\liyingjie\Desktop\chapter1-5-4.c(21) : error C2059: syntax error : ')'
执行 cl.exe 时出错.
#define后面不加分号######
#define 后面为什么不能叫分号 其实加分号编译也没问题
只是加了之后会这样
#define max 10; if(max) { //... } //然后编译的时候会被替换成 if(10;) { //.... }
######回复 @魔方帅帅 :??? 有问题么 宏确实是这样被替代的么######这个不行吧,你好像把表达式和语句弄混了。。######为什么用C,用正则鉴定字词,用hash记录次数,很快,很简单
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。