mingw中有奇怪的语法缺陷

时间:2013-09-03 19:25:06

标签: c++ mingw

AT LINE 23- cout<“”没有给出任何错误,而是删除此语句会产生异常输出。我在使用mingw32的CodeBlocks中尝试过它。当我删除它时它给 - 过程返回1984687287(0x764DF487)

#include<iostream>
#include<stdio.h>

using namespace std;

int ispalin(long num)
{
    long sum=0,n;
    short rem;
    n=num;

    while(n>0) {
        rem=n%10;
        sum=sum*10+rem;
        n/=10;
    }

    if(sum==num)return 1;
        return 0;
}

int main()
{
    int n=1;
    for(int i=999;i>=1;i--) {
        for(int j=999;j>=1;j--)
        {
            if((i*j)<=n)
            {
                cout<""; // LINE 23
                break;
            }
            if((i*i)<=n)
            {
                printf("%d",n);
                return 0;
            }
            if(ispalin(i*j))
            {
                n=i*j;
                cout<<n<<"\n";
                break;
            }
        }
    }
    return 1;
}

2 个答案:

答案 0 :(得分:2)

insertion operator

if((i*j)<=n){
    cout<<"";
         ^ Need one more <  
   ...
     }
某个平台上的

cout(隐式void*)对象可能与空字符串进行比较,<给出一个布尔语句

对于Mingw 4.7.2而言,它给我带来了错误。

答案 1 :(得分:0)

它没有给出错误,因为它是一个合法的,虽然没有结果的声明。 ostream个对象可隐式转换为void*。因此,该表达式会导致void*const char*之间的比较,这是合法的。

至于删除语句时的错误,我无法重现它。