C语言条件编译,以下程序出错,不知道错在哪里:
出错信息:
第8行:error C2014: preprocessor command must start as first nonwhite space
第13行:fatal error C1020: unexpected #endif
程序:
#include<stdio.h>
#define CHANGE 1
int main()
{ char str[20],c;
int i=0;
gets(str);
while((c=str[i])!='\0')
{ #if CHANGE
if((c>='A'&&c<='Y')||(c>='a'&&c<='z'))
c=c+1;
else if((c=='Z')||(c=='z'))
c=c-25;
#endif
printf("%c",c);
i++;
}
return 0;
}
在看到您的回答前我也已经解决了。是这样解决的。但为什么要这样呢?您是从哪里知道这样的解决方法的?
追答呵呵 你用词不用这么慎重 您...
我的回答里面说了,通过编译器给你报的错误原因撒,第8行:error C2014: preprocessor command must start as first nonwhite space,翻译成中文大致是说,预处理器命令必须以非空白开始(其实就是说必须写在行首),像这种规定其实有很多,比方说makefile里面就要求 命令必须以TAB键开始;在bash 脚本里面必须以#!打头等等。
多用了你就熟悉了。
顺便给你说下,最好不要用gets函数...读取单字符可以用getchar 读取一行字符串可以用getline
从文件读取可以fgets ...read fread...