有时候,当我孤独地坐着等待生命大门关闭时,一种与世隔绝的感觉就会像冷雾一样笼罩着我。远处有光明、音乐和友谊,但我进不去,命运之神无情地挡住了大门。我真想义正词严地提出抗议,因为我的心仍然充满了热情。但是那些酸楚而无益的话语流溢在唇边,欲言又止,犹如泪水往肚里流,沉默浸透了我的灵魂。然后,希望之神微笑着走来对我轻轻耳语说:“忘我就是快乐。”因而我要把别人眼睛所看见的光明当作我的太阳,别人耳朵所听见的音乐当作我的乐曲,别人嘴角的微笑当作我的快乐。

C++ unexpected end of file while 的问题

上一篇 / 下一篇  2009-06-25 11:34:26 / 个人分类:TCL

如何解决:"fatal error C1010:VC++6.0中常出现的"unexpected end of file while looking for precompiled header directive"的问题?

我想大家在VC6.0中经常回遇到这样的问题,如何解决呢?

1、看看是否缺少“;”,“}”  
  隐藏得深的是宏、.h文件的问题就要费点心思了

2、一定是你在类的部分定义被删除了,M$在每个类中定义一些特殊的常量,是成对的,如下:  
  .h:  
  #if   !defined(AFX_CHILDFRM_H__54CA89DD_BA94_11D4_94D7_0010B503C2EA__INCLUDED_)  
  #define   AFX_CHILDFRM_H__54CA89DD_BA94_11D4_94D7_0010B503C2EA__INCLUDED_  
  .......  
  //{{AFX_INSERT_LOCATION}}  
  //   Microsoft   Visual   C++   will   insert   additional   declarations   immediately   before   the   previous   line.  
   
  #endif   //   !defined(AFX_MAINFRM_H__54CA89DB_BA94_11D4_94D7_0010B503C2EA__INCLUDED_)  
  你可以新建一个类,然后把这些拷贝过去或补上就可以了。   
3、在头部加入   #include   "stdafx.h"

4、在CPP文件第一行加上#include   "stdafx.h"。  
  或者Rebuild   All.  

5、

(1). [Project] - [Settings] - [C/C++] - [Category]
(2). 选择 [Precomplied Headers]
(3). 单选 [Not Using Precomplied Headers]
(4). [OK]

 

拷贝文件:在工程中的header files 中加入文件:Sales_item.h (注意文件放在工程dami1目录下。)

出现调试问题:unexpected end of 这个也是文件路径错误导致的,也就是作者说明的第一点 “.h文件的问题”

习题1.21 类Sales_item 提供了操作对象,下面从标准输入读取数据,使用该数据建立一个Sales_item对象,并将该Sales_item对象写到标准输出:#include  "stdafx.h"
#include <iostream>
#include "Sales_item.h"
int main () {

 Sales_item book;

 std::cin>> book;

 std::cout<< book <<std::endl;

    return 0;
}

编辑结果:

0-201-77353-x 4 24.99
0-201-77353-x   4       99.96   24.99
Press any key to continue

习题1.22 编写程序,读入2个具有相同ISBN的Sales_item对象并产生它们的和。

#include "stdafx.h"
#include <iostream>
#include "Sales_item.h"
int main () {

 Sales_item book1,book2;

 std::cin>> book1 >> book2;

 std::cout<< book1+book2 <<std::endl;

    return 0;
}

编辑结果:

0-201-78345-x 3 20
0-201-78345-x 5 35
0-201-78345-x   8       235     29.375
Press any key to continue

习题1.24 编写 程序,读入几笔不同的交易,对于每笔新读入的交易,要确定它的ISBN是否和之前的交易ISBN一样,并且记下每一个ISBN交易的总数。通过给定多比不同的交易来测试程序。这些交易必须代表多个不同的ISBN,但是每个ISBN的记录应分在同一组。

#include "stdafx.h"
#include <iostream>
#include "Sales_item.h"
int main ()
{

 Sales_item item1,item2;
 int amount=1 ;
 std::cout<<"please input first item:";
 std::cin>>item1;
 while (std::cin>>item2)
  if (item1.same_isbn(item2))
   amount++;
  else {
   std::cout<<" the previous isbn number is :"<< amount <<std::endl;
            item1=item2;
   amount=1;     
   }
   std::cout<<" the last isbn number is :"<< amount <<std::endl;


    return 0;
}

please input first item:
0-201-78345-x 3 20.00
0-201-78345-x 2 25.00
0-201-78342-x 2 25.00
 the previous isbn number is :2

0-201-78342-x 4 25.00
0-201-78345-x 4 25.00
 the previous isbn number is :2
a


s
 the last isbn number is :1
Press any key to continue

这个程序问题在于:在最后的0-201-78345-x 数据不能和之前的合并,而是自行列出。

总结:判断和之前的交易isbn是否相同,采用了循环比较的方法。先输入一个数字item1,后来又输入另一个数字item2。比较后面输入的item和前面的是否相同。如果相同,就把数值amount递加;如果不同,输出上一个相同ISBN的数值,同时把amount置1 。把item1=item2;
依次循环比较即可。

习题1.26 在书店程序中,使用了加法操作符而不是复合赋值操作符将trans 加到total 中?

原因是在1.51中的操作中可执行的操作中没有复合赋值操作符。


TAG:

 

评分:0

我来说两句

Open Toolbar