0

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

#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”文件

我需要下载一些库吗?

4

2 回答 2

4

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

<fstream>在 C 中不存在。

哎呀!

于 2013-02-22T18:50:34.640 回答
0

我想到了。对于选择 main.c 时 Xcode 窗口右侧的文件类型,我将其更改为 C++ 源代码,它通过了错误。

于 2013-02-22T19:04:01.007 回答