24小时热门版块排行榜    

查看: 1634  |  回复: 7
本帖产生 1 个 程序强帖 ,点击这里进行查看

zyj8119

木虫 (著名写手)

[交流] 【求助】一个程序,不同编译器结果不同【已完结】 已有2人参与

CODE:
#include
#include
struct STRU
{     char s1[5],s2[5];
      int a,b;
};

char *str_num(int n)
{    int k=0,m=n,i=0;
     while(m){k++;m/=10;}
         char *str=new char[k+1];
         while(n){
                 str[k-i-1]=n%10+'0';
                 n/=10;i++;
         }
         str[i]='\0';
         return str;
}

char *fun(STRU *p1,int n)
{   int k=0;
    for(int i=0;i                 k+=strlen(p1[i].s1)+strlen(p1[i].s2);
                int t1=p1[i].a,t2=p1[i].b;
                while(t1){k++;t1/=10;}
                while(t2){k++;t2/=10;}
        }
        char *p2=new char[k+1];
        strcpy(p2," ");
        for(i=0;i                 strcat(p2,p1[i].s1);
                strcat(p2,p1[i].s2);
                char *temp=str_num(p1[i].a);
                strcat(p2,temp);
                delete []temp;
                temp=str_num(p1[i].b);
                strcat(p2,temp);
                delete []temp;
                temp=0;
        }
        return p2;
}

void main()
{    STRU st[2]={"AAA","BBB",234,1535,"CCCC","DDDD",9559,453};
     char *p=fun(st,2);
         cout<          delete []p;
}

这个程序用VC编译没问题,但是用mingw develop studio编译出现以下错误:
In file included from C:\MinGWStudio\MinGW\include\c++\3.3.1\backward\iostream.h:31,
from ggg.cpp:1:
C:\MinGWStudio\MinGW\include\c++\3.3.1\backward\backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the header for the header for C++ includes, or instead of the deprecated header . To disable this warning use -Wno-deprecated.
ggg.cpp: In function `char* fun(STRU*, int)':
ggg.cpp:30: error: name lookup of `i' changed for new ISO `for' scoping
ggg.cpp:22: error:   using obsolete binding at `i'
ggg.cpp: At global scope:
ggg.cpp:45: error: `main' must return `int'
ggg.cpp:45: error: return type for `main' changed to `int'

ggg.o - 4 error(s), 1 warning(s)

[ Last edited by nono2009 on 2010-11-11 at 07:31 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gd88

金虫 (小有名气)


zyj8119(金币+10):谢谢您精彩的回复!!!! 2010-11-03 07:21:37
nono2009(金币+1, 程序强帖+1):鼓励应助 2010-11-11 07:31:20
从目前的编译信息来看:
warning: #warning This file includes at least one deprecated or antiquated header.
你这段代码包含了不赞成的或者是老标准的文件头,

Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard.
参看 C++ Standard 的 17.4.1.2 (我看了,里面没有 .h )

Examples include substituting the header for the header for C++ includes, or instead of the deprecated header .
用<******>代替<******.h>(把.h去掉),
或者用代替

To disable this warning use -Wno-deprecated.

编译器版本的问题,目前的信息看来。
根据编译的信息作修改先,不行的话去看 C++ standard 的 17.4.1.2 部分的内容。
再不行的话,帖出编译信息。

---------------------------另:
刚才我在虚拟机里装了个WinGW 2.05,
重现了你的代码错误,
C:\MinGWStudio\MinGW\include\c++\3.3.1\backward\backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the header for the header for C++ includes, or instead of the deprecated header . To disable this warning use -Wno-deprecated.

去掉     .h     后,
反正上面重现的这段编译错误没有了。

-----------------------------
哎,查了查,试了试,
编译器的问题,或者说标准的问题。
你试下这段代码把,我这里仅仅是编译通过了。  revised    是修改的地方。
为什么这么修改,我也是根据你的编译信息,google了一下而已。
要符合你的程序需求,可能还要调一下。

编译器之间的问题还是要重视的。
CODE:
#include /*revised*/
#include /*revised*/
struct STRU
{     char s1[5],s2[5];
      int a,b;
};

char *str_num(int n)
{    int k=0,m=n,i=0;
     while(m){k++;m/=10;}
         char *str=new char[k+1];
         while(n){
                 str[k-i-1]=n%10+'0';
                 n/=10;i++;
         }
         str[i]='\0';
         return str;
}

char *fun(STRU *p1,int n)
{   int k=0;
    for(int i=0;i                 k+=strlen(p1[i].s1)+strlen(p1[i].s2);
                int t1=p1[i].a,t2=p1[i].b;
                while(t1){k++;t1/=10;}
                while(t2){k++;t2/=10;}
        }
        char *p2=new char[k+1];
        strcpy(p2," ");
        for(int i=0;i                 strcat(p2,p1[i].s1);
                strcat(p2,p1[i].s2);
                char *temp=str_num(p1[i].a);
                strcat(p2,temp);
                delete []temp;
                temp=str_num(p1[i].b);
                strcat(p2,temp);
                delete []temp;
                temp=0;
        }
        return p2;
}

int main() /*revised*/
{    STRU st[2]={"AAA","BBB",234,1535,"CCCC","DDDD",9559,453};
     char *p=fun(st,2);
         std::cout<          delete []p;
         return 0; /*revised*/
}

[ Last edited by gd88 on 2010-11-3 at 04:47 ]
2楼2010-11-03 03:05:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by gd88 at 2010-11-03 03:05:06:
从目前的编译信息来看:
warning: #warning This file includes at least one deprecated or antiquated header.
你这段代码包含了不赞成的或者是老标准的文件头,

Please consider using one of the 32 he ...

非常感谢!!!!
好好学习,天天向上。
3楼2010-11-03 07:21:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by zyj8119 at 2010-11-03 07:21:19:

非常感谢!!!!

此贴结贴。
好好学习,天天向上。
4楼2010-11-03 07:25:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
难道楼主用的是VC6吗?
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
5楼2010-11-03 18:08:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by magic7004 at 2010-11-03 18:08:01:
难道楼主用的是VC6吗?

是的。。。
好好学习,天天向上。
6楼2010-11-09 20:13:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by zyj8119 at 2010-11-09 20:13:11:

是的。。。

VC6不支持C++标准的,玩纯C++的话一定要远离VC6,真爱生命。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
7楼2010-11-09 20:35:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by magic7004 at 2010-11-09 20:35:07:


VC6不支持C++标准的,玩纯C++的话一定要远离VC6,真爱生命。

那么dev-c++和mingw-studio呢?
好好学习,天天向上。
8楼2010-11-09 20:42:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[有机交流] 伯胺上甲基求助 100+4 002tmumu 2026-07-14 4/200 2026-07-15 22:01 by 学员oN9JQD
[基金申请] H口,面上,时间戳7月7日。 +3 plumage5 2026-07-15 3/150 2026-07-15 21:06 by 6543yes
[基金申请] 小木虫没落了,除了祈祷帖子,几乎看不到有价值的帖子 +13 botar 2026-07-14 14/700 2026-07-15 19:28 by 寒流32
[基金申请] 会评 +5 无名者登山 2026-07-15 5/250 2026-07-15 18:15 by 杠就是你对
[基金申请] 生生命学部会评 +3 wuke100666 2026-07-15 3/150 2026-07-15 17:11 by kingkocxr
[基金申请] E口会评 +11 布布和一二 2026-07-13 13/650 2026-07-15 16:34 by Kittylucky
[基金申请] E口青C会评结束了吗? 40+3 小小书虫c 2026-07-14 9/450 2026-07-15 16:04 by 安静的知了
[基金申请] 生命口C13面上会评时间 +6 luckinging 2026-07-14 9/450 2026-07-15 14:39 by 雨冰共舞
[教师之家] 内心匮乏 +13 水冰月月野兔 2026-07-12 13/650 2026-07-15 14:21 by jiduquegai
[文学芳草园] 你可曾有过这种感受? +3 Jeanya 2026-07-09 6/300 2026-07-15 11:07 by mbtwt
[论文投稿] 农业机械学报投稿周期 +3 G0DLIN 2026-07-14 7/350 2026-07-15 09:26 by xs74101122
[基金申请] 国自然面上D口祈祷 +4 monkeynana 2026-07-14 4/200 2026-07-15 09:14 by 白水煮
[论文投稿] 跨出版社商投稿 20+4 倪好520 2026-07-13 4/200 2026-07-15 08:35 by bobvan
[基金申请] 没收到消息,再次陪跑 +3 天空星辰fly 2026-07-14 3/150 2026-07-14 19:14 by 6543yes
[基金申请] 不要再数国自然申请书的 filecode 的分隔符个数了 +13 sadpencil 2026-07-12 20/1000 2026-07-14 13:12 by 杠就是你对
[基金申请] 明天E口面上会评 +8 布布和一二 2026-07-12 9/450 2026-07-13 22:59 by QTSorange
[论文投稿] MSER送审了还被拒稿 +4 S778950906 2026-07-08 6/300 2026-07-13 16:22 by tfang
[基金申请] 祈祷青基必中 50+6 hadengry 2026-07-09 16/800 2026-07-12 20:31 by 登山虫虫
[考博] 27届辽宁大学应届毕业生申博 +3 可乐微风大海 2026-07-09 3/150 2026-07-10 21:23 by 贪玩的研究僧
[基金申请] 关于如何从代码看上不上会 +17 且听虎啸 2026-07-09 23/1150 2026-07-10 19:51 by sdfapple719
信息提示
请填处理意见