求一个C++ 编译器无法打开源文件的问题

小淫侠 2016-03-13 07:03:42
//本人是新人,求老司机带带,恳请赐教
//我想请问 为啥我把下面一段代码输入VS2015 编译器提示无法打开源文件 "Sales_item.h"? 我是照着书一字一字的敲的啊


#include <iostream>
#include "Sales_item.h"

int main()
{
Sales_item book;
std::cin >> book;
std::cout << book << std::endl;

return 0;

}
...全文
666 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小淫侠 2016-03-13
  • 打赏
  • 举报
回复
引用 3 楼 yshuise 的回复:
Sales_item.h ==================== 这个文件要么是别人写好,要么是你自己写的。
恩恩谢谢 我知道了 类似于库函数 这里只是声明使用 并不一定实际存在 谢谢 好人一生平安
yshuise 2016-03-13
  • 打赏
  • 举报
回复
Sales_item.h ==================== 这个文件要么是别人写好,要么是你自己写的。
小淫侠 2016-03-13
  • 打赏
  • 举报
回复
引用 1 楼 qq423399099 的回复:
LZ你得有这个Sales_item.h啊,Sales_item.h是别人自定义的类,要使用#include"Sales_item.h",你的电脑里就必须要有Sales_item.h这个头文件,要不然编译器找不到,肯定就报错了。 方法: 新建个头文件,文件名叫Sales_item.h,然后复制以下的代码到头文件中

#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include <string>
class Sales_item 
{
friend 
bool operator==(const Sales_item&, const Sales_item&);
public: 
Sales_item(const std::string &book): 
isbn(book), units_sold(0), revenue(0.0) 
{ 
} 
Sales_item(std::istream &is) 
{ 
is >> *this; 
} 
friend std::istream& operator>>(std::istream&, Sales_item&); 
friend std::ostream& operator<<(std::ostream&, const Sales_item&);
Sales_item& operator+=(const Sales_item&); 
double avg_price() const; 
bool same_isbn(const Sales_item &rhs) const 
{ 
return isbn == rhs.isbn; 
}
Sales_item(): units_sold(0), revenue(0.0) 
{ 
}
private: 
std::string isbn; 
unsigned units_sold; 
double revenue;
};
Sales_item operator+(const Sales_item&, const Sales_item&);
inline bool operator==(const Sales_item &lhs, const Sales_item &rhs)
{ 
return lhs.units_sold == rhs.units_sold && lhs.revenue == rhs.revenue && lhs.same_isbn(rhs);
}
inline bool operator!=(const Sales_item &lhs, const Sales_item &rhs)
{ 
return !(lhs == rhs); 
}
using std::istream; using std::ostream;
inline Sales_item& Sales_item::operator+=(const Sales_item& rhs) 
{ 
units_sold += rhs.units_sold; 
revenue += rhs.revenue; 
return *this;
}
inline Sales_item operator+(const Sales_item& lhs, const Sales_item& rhs) 
{ 
Sales_item ret(lhs); 
ret += rhs; 
return ret;
}
inline istream& operator>>(istream& in, Sales_item& s)
{ 
double price; 
in >> s.isbn >> s.units_sold >> price; 
if (in) s.revenue = s.units_sold * price; 
else s = Sales_item(); return in;
}
inline ostream& operator<<(ostream& out, const Sales_item& s)
{ 
out << s.isbn << "\t" << s.units_sold << "\t"<< s.revenue << "\t" << s.avg_price(); 
return out;
}
inline double Sales_item::avg_price() const
{ 
if (units_sold) return revenue/units_sold; 
else return 0;
}
#endif
谢谢你 好人一生平安
小灸舞 2016-03-13
  • 打赏
  • 举报
回复
LZ你得有这个Sales_item.h啊,Sales_item.h是别人自定义的类,要使用#include"Sales_item.h",你的电脑里就必须要有Sales_item.h这个头文件,要不然编译器找不到,肯定就报错了。 方法: 新建个头文件,文件名叫Sales_item.h,然后复制以下的代码到头文件中

#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include <string>
class Sales_item 
{
friend 
bool operator==(const Sales_item&, const Sales_item&);
public: 
Sales_item(const std::string &book): 
isbn(book), units_sold(0), revenue(0.0) 
{ 
} 
Sales_item(std::istream &is) 
{ 
is >> *this; 
} 
friend std::istream& operator>>(std::istream&, Sales_item&); 
friend std::ostream& operator<<(std::ostream&, const Sales_item&);
Sales_item& operator+=(const Sales_item&); 
double avg_price() const; 
bool same_isbn(const Sales_item &rhs) const 
{ 
return isbn == rhs.isbn; 
}
Sales_item(): units_sold(0), revenue(0.0) 
{ 
}
private: 
std::string isbn; 
unsigned units_sold; 
double revenue;
};
Sales_item operator+(const Sales_item&, const Sales_item&);
inline bool operator==(const Sales_item &lhs, const Sales_item &rhs)
{ 
return lhs.units_sold == rhs.units_sold && lhs.revenue == rhs.revenue && lhs.same_isbn(rhs);
}
inline bool operator!=(const Sales_item &lhs, const Sales_item &rhs)
{ 
return !(lhs == rhs); 
}
using std::istream; using std::ostream;
inline Sales_item& Sales_item::operator+=(const Sales_item& rhs) 
{ 
units_sold += rhs.units_sold; 
revenue += rhs.revenue; 
return *this;
}
inline Sales_item operator+(const Sales_item& lhs, const Sales_item& rhs) 
{ 
Sales_item ret(lhs); 
ret += rhs; 
return ret;
}
inline istream& operator>>(istream& in, Sales_item& s)
{ 
double price; 
in >> s.isbn >> s.units_sold >> price; 
if (in) s.revenue = s.units_sold * price; 
else s = Sales_item(); return in;
}
inline ostream& operator<<(ostream& out, const Sales_item& s)
{ 
out << s.isbn << "\t" << s.units_sold << "\t"<< s.revenue << "\t" << s.avg_price(); 
return out;
}
inline double Sales_item::avg_price() const
{ 
if (units_sold) return revenue/units_sold; 
else return 0;
}
#endif

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧