C++中#if语句的问题

#include<iostream.h>
#include<stdio.h>
void main()
{char c;c=getchar();
while(c!='\n')
{#if 1
if(c>='a'&&c<='z')
c=c-32;
#else
if(c>='A'&&c<='Z')
c=c+32;
#endif
cout<<c; c=getchar();
}
cout<<endl;
}
对于上面的程序,编译系统会报错.cpp(6) C2014: preprocessor command must start as first nonwhite space
.cpp(9) fatal error C1019: unexpected #else
但是我把那个第六行的#if换行,就没有错误了。
#include<iostream.h>
#include<stdio.h>
void main()
{char c;c=getchar();
while(c!='\n')
{
#if 1
if(c>='a'&&c<='z')
c=c-32;
#else
if(c>='A'&&c<='Z')
c=c+32;
#endif
cout<<c; c=getchar();
}
cout<<endl;
}
请问这是为什么啊,希望给出一个好的答案!!!

preprocessor command must start as first nonwhite space

意思也就是说,预处理命令必须要另一行~~~
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-11-15
宏命令必须另起一行,前面只允许有空格。

C++ 的if的语法问题……if后边为什么可以跟两个括号吗?
故if(0) (a=1);这样是合法的

c++if判断语句的问题
你的 if 语句有问题, 把 = 改成 ==, 你的是赋值, 在第一个 if 语句中, 先做了 c='+'; 的赋值, 所以每次都会计算加法, 还有 第四个if语句改成 if(c=='\/' && b!=0), 就可以正常运行了.建议把常量写在左边,这样下次就不会犯这种错误了 ...

c++ if语句的问题
首先,你这个写的是C,而不是C++,但是大多数C++的编译器是兼容C的。你在第一个if语句里边外围的判断是a==b,那么当你输入数据之后,只有当a==b的时候,才会读取该语句,并显示“相等”除此之外的所有可能都读取下边的else语句,也就是说,只要你的a b不相等都是读取的判断大于的语句。用C++...

C++IF语句的问题
C++里面判断两数相等要用==,而=表示赋值。应该这么改 if(x>-5&&x<0) printf("%d\\n",x);if(x==0) printf("%d\\n",x-1);\/\/等于0的时候应该是y=x-1吧。。。if(0<x&&x<10) printf("%d\\n",x+1);

C++简单问题,关于IF判断
if语句里面写错了 应该把 if(h=true) 改成两个“=”连写, if(h==true) 。后面的同理,你都写成了一个“=”希望对你有帮助。

C++中#if语句的问题
preprocessor command must start as first nonwhite space 意思也就是说,预处理命令必须要另一行~~~

c++ if语句的问题
if语句中判断p是否为空;s输出的是以'\\0'结尾的字符串;

c++关于if判断语句的问题
if while for等里面的判断语句的判断语句只是这个语句的返回值的情况 也就是说这个语句是任何形式的都可以,只是判断这个语句的返回值是否为零 是零,则是假的,不执行它包含的语句了 不是零则是真的,则执行他所包含的语句 满意请采纳。

C++的if语句问题
抄错。

关于c++的if语句嵌套的if与else非法配对问题
第一你的书写不规范。书写规范很重要,规范的书写可以避免括号的问题。int main (){ int x,a,b,c,d,e,f;if( 0 != x\/10000 ){ cout<<"五位数";f = 1;} else { if( 0 != x\/10000 ){ cout<<"五位数";} f = 1; \/\/错误!!!else {\/\/...} } } 规范书写你的代码就是...

相似回答
大家正在搜