记一笔:关于文件包含

转自:《Pointers on C》  Kenneth A. Reek 著


一、函数库文件包含

    编译器支持两汉走不同类型的#include 文件包含:函数库文件和本地文件。事实上,它们之间的区别很小。

    函数库头文件包含使用下面的语法。

    #include <filename>

    对于filename,并不存在任何限制,不过根据约定,标准库文件以一个.h后缀结尾。

    编译器通过观察由编译器定义的“一系列标准位置”查找函数库头文件。你所使用的编译器的文档应该说明这些标准位置是什么,以及你怎样修改它们或者在列表中添加其他位置。例如,在典型情况下,运行于UNIX系统上的C编译器在/usr/include目录查找函数库头文件。这种编译器有一个命令行选项,允许你把其他目录添加到这个列表中,这样你就可以创建你自己的头文件函数库。同样,请查阅你使用的编译器的文档,看看你的系统在这方面是怎样规定的。


二、本地文件包含

    下面是#include 指令的另一种形式。

    #include "filename"

    标准允许编译器自行决定是否把本地形式的#include 和函数库形式的#include 区别对待。你可以对本地头文件先使用一种特殊的处理方式,如果失败,编译器再按照函数库头文件的处理方式对它们进行处理。处理本地头文件的一种常见策略就是在源文件所在的当前目录进行查找,如果该头文件并未找到,编译器就像查找函数库头文件一样在标准位置查找本地头文件。

    你可以在所有的#include 语句中使用双引号而不是尖括号。但是,使用这种方法,有些编译器在查找函数库头文件时可能会浪费少许时间。对函数库头文件使用尖括号的另一个较好的理由是它能给读者提供一些信息。使用尖括号,下面这条语句

    #include <errno.h>

    显然显然引用的是一个函数库头文件。如果使用另一种形式,

    #include "errno.h"

    就无法弄清楚这个和上面相同的文件到底是一个函数库头文件还是一个本地文件。要想农明白它究竟是哪种类型?唯一的方法是检查执行编译过程的目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的超市总营业额分析程序示例: ```c++ #include <iostream> #include <fstream> #include <string> using namespace std; // 定义销售录结构体 struct SalesRecord { string name; // 品名 int quantity; // 数量(个) double price; // 单价(元) }; // 计算销售额函数 double calculateSales(SalesRecord record) { return record.quantity * record.price; } int main() { // 定义文件名和流对象 string fileName = "salesRecord.txt"; ofstream outFile(fileName, ios::app); // 打开文件并追加写入 // 输入销售录 SalesRecord record; cout << "请输入品名、数量和单价(以空格分隔):" << endl; cin >> record.name >> record.quantity >> record.price; // 写入销售录到文件 outFile << record.name << " " << record.quantity << " " << record.price << endl; outFile.close(); // 关闭文件流 // 读取文件并计算总销售额 ifstream inFile(fileName); double totalSales = 0; SalesRecord curRecord; while (inFile >> curRecord.name >> curRecord.quantity >> curRecord.price) { totalSales += calculateSales(curRecord); } inFile.close(); // 输出总销售额 cout << "本周销售额为:" << totalSales << " 元" << endl; return 0; } ``` 该程序使用文件进行存储和读取销售录,结构体存储每笔销售录,函数计算销售额。用户输入销售录后,程序将其写入文件并关闭文件流。每周末,程序读取文件并计算总销售额,输出结果。注意,该程序没有进行错误处理和数据校验,实际使用时需要根据具体情况进行完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值