CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

!!!初学菜鸟斗胆进言:C++Builder太烂了!!!

楼主cnsuyong(小可)2003-06-04 18:51:40 在 C++ Builder / 基础类 提问

#include   <stdio.h>  
   
  void   main()   {  
      char   a,b,c,d;  
      while   (1)   {  
          printf("Input   a:   ");  
          scanf("%d",&a);  
          printf("a=%d\n",a);  
          printf("Input   b:   ");  
          scanf("%d",&b);  
          printf("a=%d   b=%d\n",a,b);  
          c=a;  
          d=b;  
          printf("a=%d   b=%d   c=%d   d=%d\n\n",a,b,c,d);  
      }  
  }  
   
  /*  
  在C++   Builder6中,  
  File|New|Other...  
  New标签  
  Console   Wizard  
   
  得到一个主程序框架,改写源代码为上面的内容,  
  编译并运行,其中键盘输入序列为:  
   
  23回车  
  45回车  
   
  得到如下结果(拷屏):  
  **********************************************************  
  Input   a:   23  
  a=23  
  Input   b:   45  
  a=0   b=45  
  a=0   b=45   c=0   d=45  
   
  Input   a:  
  **********************************************************  
   
  在Borland   C++   5.0和C++   Builder   5.0中编译运行效果也是如此。  
  但在Turbo   C   2.0和VC6中编译运行完全正常。  
  */  
   
  我真的不想承认Borland产品有如此瑕疵。  
  请有经验的前辈们指点迷津。  
  问题点数:100、回复次数:104Top

1 楼yangfan369(扬帆远行)回复于 2003-06-04 18:55:41 得分 0

难以置信。Top

2 楼yangfan369(扬帆远行)回复于 2003-06-04 19:07:54 得分 0

你的程序中有死循环while(1),没有出口语句,会不会是这个引起的Top

3 楼sdma(智能天线)回复于 2003-06-04 19:08:47 得分 0

做个标记  
  待会回来看一下……Top

4 楼sdma(智能天线)回复于 2003-06-04 19:09:42 得分 0

我刚才试了  
  不管那句循环的事  
  换成下面的代码问题仍然存在…………  
  #include   <stdio.h>  
  #include   <conio.h>  
   
  void   main()  
  {  
    char   a,b;  
   
    printf("Input   a:   ");  
    scanf("%d",&a);  
    printf("a=%d\n",a);  
   
    printf("Input   b:   ");  
    scanf("%d",&b);  
    printf("b=%d\n",b);  
   
    printf("a=%d   b=%d",a,b);  
   
    getch();  
   
  }Top

5 楼x_2k(谁会记得我)回复于 2003-06-04 19:09:58 得分 0

試過了,真的有這回事.在找問題中.Top

6 楼x_2k(谁会记得我)回复于 2003-06-04 19:14:05 得分 0

我用的是bcb6   +   win2000Top

7 楼x_2k(谁会记得我)回复于 2003-06-04 19:14:27 得分 0

用了update4了Top

8 楼laiguorong(Win Lai)回复于 2003-06-04 19:15:00 得分 0

前面定义的是字符型  
  输入又是整型  
   
  真是搞不懂你想干嘛!Top

9 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-06-04 19:15:26 得分 0

嗬嗬,我不知道的标题说   自己是菜鸟是谦虚还是对borland   c编译器的嘲讽。  
  但是我可以告诉你这个不是bug,只能说不通编译器的差异。  
   
  你不理解了不同编译器的差别。Top

10 楼Behard(我爱天安门)回复于 2003-06-04 19:15:54 得分 0

非常简单的问题呀  
  你自己的代码有问题呀  
  char   的变量当作   int   来输入,而   a、b、c、d   的地址是连续的  
  输入   b   是已经覆盖了   a   的后面三个   Byte   的数值  
  其当然为零  
  测试我的说法:  
  输入   a=11111111   b=22222222  
  则   a=21   b=-114Top

11 楼x_2k(谁会记得我)回复于 2003-06-04 19:16:55 得分 0

以前好像是听说过这问题的.  
  原理倒是忘了.Top

12 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-06-04 19:17:13 得分 0

你忽略了   char   和   int的存储方式不同。  
  我没试过你的程序,但是我想你不妨输入一下   a=256   这个数字,我想肯定是   a=0,   b=-1的。Top

13 楼huangjuliang(学习,学习,再学习!)回复于 2003-06-04 19:21:42 得分 0

兄弟看仔细了  
  字符类型呀出错了!  
  定义     char  
  scanf         %d  
  当然不对了  
   
  这不是BCB的错呀!!!  
  是你自己的错!Top

14 楼x_2k(谁会记得我)回复于 2003-06-04 19:22:35 得分 0

哈哈,被楼主糊涂了.学到东西了.谢谢大哥们.  
   
  Turbo   C++   2.0不也是BORLAND设计的么,为什么它要改原先的设计?  
   
  其实以前学C++时就觉得这样CHAR与INT可以自动换挺方便的.  
  Top

15 楼wangxd(东东)回复于 2003-06-04 19:22:56 得分 0

是么,试试看Top

16 楼Libran()回复于 2003-06-04 19:26:40 得分 0

由于声明为char类型,编译器为a、b、c、d各分配了一个字节,且连续的存贮空间;而作为int赋值时会占用2个字节,因此将高字节(刚好就是前一个变量的存贮地址)也同时写入值,所以……Top

17 楼slhuang(★Shawn★)回复于 2003-06-04 19:29:32 得分 0

楼上的有道理。第二次学习中……Top

18 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-06-04 19:29:36 得分 0

char   a,   b,   c,d    
  变成汇编,应该是这么存储的   (32bit方式)  
  a=>   [ebp-1]  
  b=>   [ebp-2]  
  c=>   [ebp-3]  
  d=>   [ebp-4]  
  当你给   b   按照整型scanf("%d",   &b)赋值得时候,  
  他会把b的内容填写在   [ebp-2][ebp-1][ebp-0][ebp+1]   这4个字节里面,很显然,它覆盖了刚才的a   [ebp-1]的内容,  
   
  你说的45小于   255,自然   [ebp-1]这几个字节都变成   0了,  
   
  其实你的ebp指针操作已经溢出了,可以说你这个程序是存在潜在的危险的。  
   
  按照你的说法vc不出错,2种可能,  
  1.vc的编译器按照了多字节对齐方式,比如4字节对齐  
  这样可能是按照这么分配的空间。  
  a=>   [ebp-1]  
  b=>   [ebp-5]  
  c=>   [ebp-9]  
  d=>   [ebp-13]  
  2.vc的编译器在类型转换的时候没有把你的scanf("%d",   %a)这些操作扩展为4字节的整数。  
   
  总之,问题的根结在于你自己。  
   
  推论:你这个问题如果在非x86处理器上,比如powerpc这类的编译器上面,又是另一个结果,因为他们堆的生长方向和x86的正好相反。Top

19 楼x_2k(谁会记得我)回复于 2003-06-04 19:30:25 得分 0

這樣說,就理解了.Top

20 楼x_2k(谁会记得我)回复于 2003-06-04 19:33:12 得分 0

代所有不明白的人感謝樓主與各位星星大哥,這可以書上學不到的寶貴東東.Top

21 楼yingyys(鹰)回复于 2003-06-04 19:39:03 得分 0

是的呵,char   改成   int   就行,原理就是众高手说的Top

22 楼ThinkX(秋天的树)回复于 2003-06-04 19:40:49 得分 0

在help中写的命名白白,%d输入时需要int*的指针,  
  你却给了char*的指针,当然会溢出的,覆盖掉后面3个字节,就是b,c,d都被清空了。  
   
  另外,你这篇帖子口气不小,告诉你,你正是无知者无畏。  
  你还没有资格先怀疑编译器,出了问题先要怀疑自己是否错了。  
   
  最后告诉你,要想知道scanf是怎样实现的,去看  
  $(bcb)/source/rtl/source/io/scanf.c和scanner.c去吧,  
  等看明白了你才有资格发这种帖子!Top

23 楼kufuy()回复于 2003-06-04 19:53:44 得分 0

输整型给字符型变量,发生栈溢出。Top

24 楼shanewest1(炉子)回复于 2003-06-04 20:09:31 得分 0

明白了Top

25 楼qibo999(行路者)回复于 2003-06-04 20:16:41 得分 0

呵呵,来看看。  
  大家说的很不错,看来学习就是要扎扎实实,要理解透彻!Top

26 楼shally5(我在一旁静静的看着你)回复于 2003-06-04 20:36:29 得分 0

呵呵,来啊!掌嘴.Top

27 楼commandos(孤独求胜)回复于 2003-06-04 20:48:36 得分 0

呵呵,tc能够通过是因为tc2.0   是   16位的编译器,  
  borland   c++5和borland   c++Builder6   都是32位的Top

28 楼yydy(一条活鱼)回复于 2003-06-04 20:56:40 得分 0

有时间再看Top

29 楼chifengwatch(chifengwatch)回复于 2003-06-04 21:18:18 得分 0

up   upTop

30 楼fly_hyp(大鹏)回复于 2003-06-04 21:39:07 得分 0

"由于声明为char类型,编译器为a、b、c、d各分配了一个字节,且连续的存贮空间;"  
  错了c++   char   应该为两个字节!!!!!  
  Top

31 楼joymachines(www.chinabcb.com)回复于 2003-06-04 21:40:51 得分 0

嗨,盖了  
  好像在学汇编Top

32 楼leehq(没有读过高中的人)回复于 2003-06-04 22:05:10 得分 0

[C++Builder6]   VS   [Visual   C++.NET]  
  [Delphi6]   VS   [Visual   Basic.NET]  
   
  的确没得比,界面不够友好,又不能定义自己的喜欢的工具栏布局!hlp格式(难道连chm格式borland都不会做?!)的帮助文件更本就没用,真不知道borland是怎么想的!Top

33 楼actinia(海葵)回复于 2003-06-04 23:08:16 得分 0

关注,做个标记Top

34 楼zywx(Waterun)回复于 2003-06-04 23:57:08 得分 0

to     leehq(没有读过高中的人)  
  不要忘了,[Visual   C++.NET]和[Visual   Basic.NET]都是在[C++Builder6]   和[Delphi6]之后推出的啊,你拿80年代的dos能和windows相比吗?你说界面不够友好,那你认为什么样的界面才够友好?可能是你的审美观点和一般人不同吧,就像有的人喜欢光着屁股睡觉,而有的人喜欢穿着西服睡觉Top

35 楼rh(花覆茅檐)回复于 2003-06-05 00:03:00 得分 0

真对得起你的名字:)  
  "无畏的英雄"!Top

36 楼xz_fj(嚣张.net)回复于 2003-06-05 00:25:12 得分 0

我用BCB很久了,出了问题我一般是怀疑自己的代码,BCB是不稳定,也的确有BUG,但基本上你写普通程序是很难碰到的Top

37 楼Behard(我爱天安门)回复于 2003-06-05 00:39:28 得分 0

怎么没有看见楼主出现了呢?Top

38 楼sxqwhxq(步青云)回复于 2003-06-05 12:13:18 得分 0

最近一些QQ在未认真作调查研究和仔细推敲就是动不动用不太礼貌的语句扁BCB,这样影响大家的心情。Top

39 楼cnsuyong(小可)回复于 2003-06-05 13:07:47 得分 0

楼主来说话:  
   
  如果把声明改成  
   
  char   b,a,c,d;  
   
  则一切正常。  
  也就是说,把声明中的a和b换一下位置,就没问题了。  
   
  楼上诸位讨论的很激烈,俺很感激。  
  只是按照所谓“内存覆盖”理论来说,好象是解释不通的,不信大家就试试。  
   
  还有,俺一直以为,char与int只是内存宽度不一样,但都可以用来存放整数,特别是char类型,随便写成下面哪一句,都是正确的:  
   
  a=65;  
  b='X';  
  c='\0';  
   
  俺以为,这一点与Delphi中的char完全是两回事(Delphi中的Char类型必须通过Ord运算才能转换为专门的Byte类型)。Top

40 楼nobill(阿宝)回复于 2003-06-05 13:23:22 得分 0

up一下Top

41 楼leonpard(猪哥哥)回复于 2003-06-05 13:25:12 得分 0

这么简单的程序出错,不找自己的问题,楼主对自己太自信了吧。Top

42 楼qlqqlq1978(*^_^*)回复于 2003-06-05 13:28:48 得分 0

pazee(耙子)   说得对,可以解释得通啊,    
    cnsuyong  你仔细想一下Top

43 楼qlqqlq1978(*^_^*)回复于 2003-06-05 13:31:25 得分 0

楼主精神我很佩服,但你得做法有点不妥  
   
  自己问题没找到,先一阵狠骂。  
   
  我最后再说一句佩服。Top

44 楼qlqqlq1978(*^_^*)回复于 2003-06-05 13:36:31 得分 0

你想,a,b顺序一变成了b,a  
   
  而你先输入a,而那时的b还没分配内存,当然不存在覆盖的问题啊。这是大概思路,很多东西要自己体会。OVERTop

45 楼taigc(taigc)回复于 2003-06-05 13:40:13 得分 0

#include   <stdio.h>  
   
  void   show_value(char*   address)  
  {  
      int   i;  
      printf("%X   :   ",address);  
      for(i=0;i<4;i++)  
      {  
          printf("%02X   ",*(address+i));  
      }  
      printf("\n");  
  }  
   
  int   main(void)  
  {  
      char   a=0,b=0;  
   
      scanf("%d",&a);  
      show_value(&a);  
      show_value(&b);  
   
      scanf("%d",&b);  
      show_value(&a);  
      show_value(&b);  
   
      return   0;  
  }  
   
  ....自己用上面的程式跑跑看..   -_-||  
  分配時a的位址會在b的後面一byte...  
  所以a填入後~   是對的...因為不知道蓋到啥了...  
  但在b填入後...因為是int...所以同上也是填入4byte...  
  所以就把a的值蓋掉了...-_-||  
  請跑跑我寫的程式觀查一下記憶體的值...Top

46 楼cnsuyong(小可)回复于 2003-06-05 13:41:05 得分 0

俺整理了一下,欢迎大家指正:  
  1、scanf   %d不能用于char,因此希望用户输入年龄(不会超过127或者255岁吧)并且保存到char变量中是不可能的,必须以%c让用户输入A(65岁,用户说:我今年A岁了),或者用%s得到"65"然后计算得到数字65再存入到char变量中?  
  2、BCB没有问题,而TC2和VC6有问题,这么简单的“错误代码”居然能正确运行??  
  3、char类型就是字符类型,只能作为字符或者串的元素,而不能用来输入数字???  
   
  由此引发的问题:  
  1、VC与BCB编译器有哪些主要差异?  
  2、与此类问题相似的情况还有多少?  
   
  欢迎大家批评,更欢迎大家指教。Top

47 楼cnsuyong(小可)回复于 2003-06-05 13:43:33 得分 0

关于内存的问题,俺明白,谢谢楼上诸位。  
  俺还想问:为什么98年的VC就能正确处理,而2002年的BCB6却不行呢?Top

48 楼qlqqlq1978(*^_^*)回复于 2003-06-05 13:45:35 得分 0

你说话也不能这么极端啊,你这根本不是虚心接受。  
   
  首先声明我也是一菜鸟,也不和你多讲了。  
   
  此问题就此结束。88Top

49 楼myy()回复于 2003-06-05 13:46:19 得分 100

C++Builderer   太烂了Top

50 楼cnsuyong(小可)回复于 2003-06-05 13:57:29 得分 0

欢迎继续耐心批评俺,欢迎继续耐心指教。Top

51 楼zywx(Waterun)回复于 2003-06-05 13:57:41 得分 0

我想这不是BCB6不行的问题,而是BCB6根本当这是错误的用法,说明BCB6是按照语法严格执行的,你想一想Turbo   C不是也可以吗?Top

52 楼taigc(taigc)回复于 2003-06-05 14:02:14 得分 0

回答cnsuyong:  
  1.   因為int為4byte,   所以scanf   %d會寫入4bytes的資料到你指定的memory   address.  
  2.   這不算錯誤,   這就是用指針出錯.   C語言本來就可以隨便將值寫入指定的memory中,   你可以看看C語言教學書中關於指針(point)的部份.  
  3.   char就是一個1byte的資料,   在print   %c時,   會根據該byte的值來決定輸出的char,   儲存在memory都是一個值的,   所有char都對應到一個ASCII碼.  
   
  歡迎指教與討論^^Top

53 楼cnsuyong(小可)回复于 2003-06-05 14:03:03 得分 0

现在想想,还是Pascal(直到Delphi7的Object   Pascal都很强壮)的Read、Readln、Write、Writeln好,哪有这么多的麻烦。可惜俺已经走上了C/C++的不归路。  
  请大家帮帮再耐心一点吧:如何把数字直接输入到char变量中?(%d真的不能用于char吗?)Top

54 楼TopCat(令狐虫)回复于 2003-06-05 14:33:55 得分 0

这不是BCB的问题,你的用法是一个错误的用法——你说得没错,%d不能用于char,而C标准库(注意是标准库,不管是不是BCB)不保证错误用法的结果正确性。你只测试了TC和VC,你测试过gcc吗?我在gcc和g++里编译,结果跟BCB是一样的,gcc是现在Linux上的主力C语言开发工具,它的结果应该还是值得信任的吧。  
   
  解决的方法是,使用1个int变量做临时变量:  
  char   a,b,c,d;  
  int   temp;  
  scanf("%d",   &temp);  
  a=temp;     //这样不会出错,因为编译器会做一个隐式转换。  
   
   
  至于你说的Object   Pascal,我倒是很奇怪,难道在Pascal里你能把数字读入一个char类型变量?我手头上没有Pascal编译器,还烦请楼主自己测试一下。Top

55 楼ThinkX(秋天的树)回复于 2003-06-05 15:27:09 得分 0

这和编译器一点关系也没有,而是与运行库有关。  
  你可以看看运行库是怎样实现的,因为不同的编译器配备有不同的运行库。Top

56 楼sxqwhxq(步青云)回复于 2003-06-05 15:46:14 得分 0

楼主,不知你试过以下最简单的代码没有?  
  char   *p1=”test”;  
  char   *p2=”test”;  
  if(p1==p2)  
  ShowMessage(“p1等于p2”);  
  else  
  ShowMessage(“p1不等于p2”);  
  肯定不相等!因为这是C++分配了两个字符串常量,它们的地址是不一样的,但你切不可认为“C++真烂”,否则就连windows的核心也是不可靠的,因为的内核是用C++写的。  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  Top

57 楼thingking(【深水冒泡 (先把书读厚,再把书读薄,最后把书读厚)】)回复于 2003-06-05 15:54:28 得分 0

无话可说!Top

58 楼yhz(耗子)回复于 2003-06-05 19:20:06 得分 0

“为什么98年的VC就能正确处理,而2002年的BCB6却不行呢?”  
  这不是年代的问题,而是不同的编译器的不同处理方式的问题。  
  VC可能在标准C之外,对这个类型的错误进行了优化,  
  (例如对数据类型进行了隐式转换等等)  
  所以在编译运行的时候不会出错。  
   
  但是BCB则是严格按照标准C的规定,直接编译,就会出错了。  
   
  这是和这两个编译器的风格有关,根本不是技术问题,  
  如果你不能接受BCB的处理方式,没有人会反对你用VC。  
   
  其实,C/C++是一种很灵活,很自由的语言,根本不是死板的Pascal所能比的。  
  但是,自由的缺点就是容易出错,要程序员自己十分的小心每一步。  
  所以,只要编译器完全支持标准C/C++就可以了。  
   
  每个人都有自己的风格和喜好,  
  而很不幸,BCB的风格是你所不能接受的,那你   完全可以转用VC,  
  这完全是你个人的选择。  
   
  但是不要把这些问题都怪罪到BCB头上,  
  至少我个人觉得他是一个很好的编译器。  
   
  Top

59 楼xiaojianw(钳工)回复于 2003-06-05 19:21:26 得分 0

upTop

60 楼Yans(跟贴是一种友谊)回复于 2003-06-05 19:56:20 得分 0

大家说的很不错,看来学习就是要扎扎实实,要理解透彻!  
  我用bcb没多久,但觉得有些地方还不错!也遇到过不少毛病!可能是自己水平太差了吧!呵呵!  
  学习学习Top

61 楼leehq(没有读过高中的人)回复于 2003-06-05 20:12:41 得分 0

---------------------------------------------------------------------------------  
  to     leehq(没有读过高中的人)  
  不要忘了,[Visual   C++.NET]和[Visual   Basic.NET]都是在[C++Builder6]   和[Delphi6]之后推出的啊,你拿80年代的dos能和windows相比吗?你说界面不够友好,那你认为什么样的界面才够友好?可能是你的审美观点和一般人不同吧,就像有的人喜欢光着屁股睡觉,而有的人喜欢穿着西服睡觉  
  ---------------------------------------------------------------------------------  
   
  to   ozywx(Waterun)  
  Visual   Studio.NET可是2002年初推出的啊,而C++Builder6也是2002年出的吧,怎么不能拿来相比呢?  
   
  即使是和vc6比它也比不上啊!  
  Top

62 楼Lewolf(无名)回复于 2003-06-05 22:03:36 得分 0

我的BCB编译没有问题,因为我的IDE缺省设置是4字节对齐,  
  呵呵,恰好给碰着了!  
   
  TC中16位编译器,缺省设置是2字节对齐,对于16位整型,没问题可以和int自由转换,而BCB中安装后的对齐方式好像是字节对齐,微软一直推荐使用4字节对齐,在其VC中想必就是这样,我觉得微软的作风就如同他的产品一样,一味的追求华丽,而不顾及资源的利用,据说在.Net的PE文件中,节的对齐方式已经从4K增加都8K,天那,8K对齐方式,简直就比Dos下的Mouse驱动程序还要大。  
   
  BCB给你了自由,只是你没有掌握,当然写出上面的代码也完全是不负责任的做法。Top

63 楼Jinglihui(雪狐)回复于 2003-06-05 22:06:59 得分 0

烂Top

64 楼nnfish(游在Code中的鱼)回复于 2003-06-05 22:15:18 得分 0

^0^,,原来如此Top

65 楼cclx_net(会写程序的猪)回复于 2003-06-05 22:19:58 得分 0

signTop

66 楼warton(创业群13734424 http://www.anywhy.cn)回复于 2003-06-05 22:25:54 得分 0

KKKKKKKK,  
  是这程序太烂!!哈哈!Top

67 楼lantianning(浮想花园)回复于 2003-06-05 22:39:05 得分 0

实话实说,  
  除了BCB比较烂  
  还有大家编的程序也比较烂Top

68 楼xiuligong(臭油松)回复于 2003-06-06 05:02:08 得分 0

我看BCB到未必烂,是程序烂!很多软件都是从BCB里出来的,怎么到你手里就烂的不能用了呢?Top

69 楼TR@SOE()回复于 2003-06-06 06:52:12 得分 0

讨论这样的问题真浪费时间!Top

70 楼BCB(天下三分明月夜,二分无赖是扬州)回复于 2003-06-06 08:38:12 得分 0

许多对C没深究的人会犯这种错误,这种错误在编译时是无法发现的,  
  运行就出莫名其妙,再如:  
        char   c=28;                      
        printf("%d",c);           //     串中假设是整型,而后并不是整型  
  这种“错误”曾在一本计算机杂志上长篇发表过,说发现了C语言的  
  一个大错误,其实作者是个半瓶醋。   原因是未掌握C的实质。  
   
   
   
   
     
  Top

71 楼qiuafa()回复于 2003-06-06 13:04:25 得分 0

积分+捧场Top

72 楼dxkh(沧海一粟)回复于 2003-06-06 13:32:24 得分 0

char   c;  
  int   d;  
   
  scanf("%c",&c);  
  scanf("%d",&d);  
  Top

73 楼jingrunx(我是菜鸟我怕谁)回复于 2003-06-06 13:33:43 得分 0

有个小偷偷了邻居家里一件衣服,还在其他人面前说这件衣服不合身。  
  你给Borland公司付钱没有,在这儿乱叫。  
  Top

74 楼microlazy(有点懒)回复于 2003-06-06 15:30:58 得分 0

想起来别人说过的一句话  
  很少高手讨论编译器的高低.Top

75 楼creativitysoft(其实BORLAND是最好的)回复于 2003-06-06 17:34:05 得分 0

真的是狗追摩托不懂科学。还说C++Builder太烂了!支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB支持BCB!Top

76 楼xhusa(立风)回复于 2003-06-06 18:14:53 得分 0

不要动不动就说XX的编译器不行  
   
  要找原因  
   
  Tc也是borland的呀Top

77 楼cnsuyong(小可)回复于 2003-06-06 18:41:48 得分 0

哈哈,这么多人维护宝蓝公司啊。  
  问题也算搞清楚了。不说狠话也得不到这么多的跟贴。一些问题俺问了,不过很少有人搭理,这次算是达到效果了。  
   
  我将在VC版中发一篇帖子说“!!!VC太烂了跟BCB没法比!!!”  
  欢迎诸位继续捧场。  
   
  一句老话:我是菜鸟我怕谁!Top

78 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-06-06 18:46:26 得分 0

大家不是追捧   borland,  
  这是就事论事,哗众取宠不能因为是“菜鸟”就不让人厌恶!Top

79 楼zhzc3911(流星雨)回复于 2003-06-06 18:49:08 得分 0

大家要就事論事,多討論技術問題,多學習  
  不要說廢話Top

80 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-06-06 18:49:40 得分 0

我上学的时候不像现在互联网满世界都是,只有个别老师的办公室才有条件上网。  
  tcp/ip只不过是我们网络课上面的一个名词,  
   
  我们别老问别人,多问问自己。  
   
  你这个问题你完全可以通过看汇编出来的代码来了解。Top

81 楼lanren_me(阿波)回复于 2003-06-06 19:00:12 得分 0

upTop

82 楼cnsuyong(小可)回复于 2003-06-06 19:18:03 得分 0

欢迎到VC版继续讨论俺的菜鸟帖子。这里的问题谢谢诸位!!!Top

83 楼catface0511()回复于 2003-06-06 20:01:01 得分 0

又变成BCB的拥护了  
  我们学习的是语言不是编译器        
  如果老是怀着这种谁谁烂的跟什么什么没的比  
  …………  
  恐怕难以进步Top

84 楼BlueStorm(蓝色风暴)回复于 2003-06-06 20:11:56 得分 0

菜鸟:  
      如果你想用C++语言写控制台程序的话,你最好还是把printf()和scanf()忘了吧。  
   
  #include   <conio.h>  
  #include   <iostream.h>  
  int   main(int   argc,   char*   argv[])  
  {  
      int   a,b,c,d;  
      cout<<"Input   a:   ";     cin>>a;  
      cout<<"a="<<a<<endl;  
      cout<<"Input   b:   ";     cin>>b;  
      cout<<"a="<<a<<"     b="<<b<<endl;  
      c=a;   d=b;  
      cout<<"a="<<a<<"   b="<<b<<"   c="<<c<<"   d="<<d<<endl;  
      getch();  
      return   0;  
  }  
  Top

85 楼cnsuyong(小可)回复于 2003-06-07 00:27:00 得分 0

谢谢楼上。俺在学走路之前,以为学会爬比较重要。尽管是菜鸟,但现在还没能力学飞。  
   
  顺便问大家一句:“菜鸟”一词从何而来?(词源)(不好意思,对这个问题,俺也很菜。)Top

86 楼TR@SOE()回复于 2003-06-07 07:00:00 得分 0

如果你的目的是让大家记住你的名字,那么你的目的已经达到了——至少对我来说是如此。我是不会再回答这样的问题的了。Top

87 楼gdyt007(只因专注)回复于 2003-06-07 17:17:00 得分 0

………………Top

88 楼flyinger(风往北吹)回复于 2003-06-07 17:42:49 得分 0

好!  
  我不知道该说什么!  
  但我不能沉默!Top

89 楼nightfallrove(过儿 明月装饰了你的窗 你装饰了我的梦)回复于 2003-06-07 18:11:15 得分 0

你丢脸了,快结贴改名吧,,  
  Top

90 楼BlueStorm(蓝色风暴)回复于 2003-06-07 21:02:12 得分 0

一只菜鸟鸣翠柳,几行高手站两边----好诗!Top

91 楼zxjrainbow(小笨象)回复于 2003-06-07 21:50:48 得分 0

KK!  
  这不关编译器的事,关你的事!  
  Top

92 楼yangfan369(扬帆远行)回复于 2003-06-07 23:15:59 得分 0

我们热心的回答他的问题,原来他是醉翁之意不在酒,哎……  
  不过话说回来,我也算长见识了,一些细节性的问题,我们真得很菜。Top

93 楼cnsuyong(小可)回复于 2003-06-08 00:29:27 得分 0

接受批评中...Top

94 楼cnsuyong(小可)回复于 2003-06-08 10:19:25 得分 0

今天就结贴,还没抛砖的请抓紧时间!Top

95 楼bluedodo(笑三少)回复于 2003-06-08 11:38:19 得分 0

值得好好体会!Top

96 楼kuangjingbo(正在学习windows)回复于 2003-06-08 11:42:34 得分 0

菜鸟?Top

97 楼clinton81(克林顿)回复于 2003-06-08 11:59:54 得分 0

虽然人家不对,但也不要再为难人家了。他已经开始反思自己,以后有困难大家一起解决。Top

98 楼ouyongke(只吃源代码的Mouse)回复于 2003-06-08 12:55:35 得分 0

学到东东了,char   就是int,那么我就可以用int来记录String了。Top

99 楼ql_mf(ql_mf)回复于 2003-06-08 13:06:30 得分 0

从楼顶看到楼底,累死了。  
  无聊的问题。  
  We   are   programmers,请不要讨论这些无聊的问题。  
  高手无论用什么编程语言都能做得很好,我们要努力成为高手,而不是在这里钻牛角尖。Top

100 楼matq2008(叶子.net)回复于 2003-06-08 13:07:32 得分 0

回答不回答是人家的权利!建议不要太激动!  
  自己多多学习吧!Top

101 楼cool222(坚持到底)回复于 2003-06-08 13:25:28 得分 0

早该结帐了,惹来这些多废话Top

102 楼shadowstar(CodeFast for Delphi & C++Builder)回复于 2003-06-08 13:49:01 得分 0

对楼主之敬仰如滔滔之江水连绵不绝,又犹如黄河泛滥一发不可收拾也~~Top

103 楼gegangqiao(困惑的男人)回复于 2003-06-08 14:31:17 得分 0

楼上的都是高手,相当不错,佩服!!!Top

104 楼5411208(口子)回复于 2003-06-08 16:27:41 得分 0

其实等我发帖时相信大家已经明白是怎么回事了,我想说的是  
  既然我们选择了C++就应该尽量避免使用printf,scanf之类的  
  函数,而是使用COUT,CIN。否则我们干脆使用TC或BC算了。Top

相关问题

  • 初学c++builder可看什么书?
  • 初学者如何学C++ BUILDER?
  • 初学c++ builder,什么书比较好?
  • C++初学
  • c初学者
  • C++初学?
  • C#初学者
  • 初学C++
  • C#初学者
  • 初学C++BUILDER,斗胆问一个问题

关键词

  • .net
  • c++
  • c++ builder
  • c++builder
  • visual c++
  • 编译器
  • bcb
  • borland
  • 指针
  • 界面

得分解答快速导航

  • 帖主:cnsuyong
  • myy

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo