包含<fstream>的代码无法编译</fstream>

时间:2013-02-22 18:40:31

标签: c++ fstream

我在这里找到了下面的代码,并试图编译它以学习一些编程:

#include <fstream>
#include <cerrno>
#include <stdexcept>
#include <cstring>
#include <vector>


int main() {
    // Which disk?
    char diskName[] = "/dev/sda";
    std::string diskError = std::string() + diskName + ": ";

    // Open device file
    std::ifstream disk(diskName, std::ios_base::binary);

    if(!disk)
        throw(std::runtime_error(diskError + std::strerror(errno)));

    // Seek to 54321'th sector
    disk.seekg(512 * 54321);
    if(!disk)
        throw(std::runtime_error(diskError + std::strerror(errno)));

    // Read in one sector
    std::vector<char> buffer(512);
    disk.read(&buffer[0], 512);
    if(!disk)
        throw(std::runtime_error(diskError + std::strerror(errno)));
}

编译器在以下行上抱怨:

#include <fstream>

错误消息是:

'fstream'文件未找到

我需要下载一些库吗?

2 个答案:

答案 0 :(得分:4)

您使用gcc(C前端)而不是g++(C ++前端)编译它。

C中不存在

<fstream>

糟糕!

答案 1 :(得分:0)

我明白了。对于选择main.c时Xcode窗口右侧的文件类型,我将其更改为C ++源代码,它已经超出了错误。