C++ 代码包括<;fstream>;不编译

C++ 代码包括<;fstream>;不编译,c++,fstream,C++,Fstream,我在这里找到了以下代码,并试图编译它以学习一些编程: #include <fstream> #include <cerrno> #include <stdexcept> #include <cstring> #include <vector> int main() { // Which disk? char diskName[] = "/dev/sda"; std::string diskError = st

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

#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)));
}
#包括
#包括
#包括
#包括
#包括
int main(){
//哪个磁盘?
char diskName[]=“/dev/sda”;
std::string diskError=std::string()+diskName+“:”;
//打开设备文件
std::ifstream磁盘(diskName,std::ios\u base::binary);
如果(!磁盘)
抛出(std::runtime_error(diskError+std::strerror(errno));
//寻求第54321个扇区
圆盘。seekg(512*54321);
如果(!磁盘)
抛出(std::runtime_error(diskError+std::strerror(errno));
//在一个扇区中读取
std::向量缓冲器(512);
磁盘读取(&缓冲区[0],512);
如果(!磁盘)
抛出(std::runtime_error(diskError+std::strerror(errno));
}
编译器在以下行中抱怨:

#include <fstream>
#包括
错误消息是:

找不到“fstream”文件


是否有需要下载的库?

您用<代码> gcc>代码>(c前端)代替了<代码> g++< /c>(C++前端)。
在C中不存在


哎呀

> p>您用<代码> gcc>代码>(C前端)代替了<代码> g++< /c> >(C++前端)。

在C中不存在


哎呀

我明白了。在选择main .c时,在XCODE窗口右侧的文件类型,将其改为C++源,并通过了错误。

< P>我想出来了。当选择了main .c时,在XCODE窗口右侧的文件类型,我将它改为C++源,并且它通过了错误。< /P> OK,那么我如何告诉XCug使用G++?我已经解决了。当选择了main .c时,在XCODE窗口右侧的文件类型,将其改为C++源,并且它通过了错误。@ USE1573041 C++源文件应该命名为代码> CPP 而不是<代码> C.<代码>。使用这个约定,否则每个试图编译代码的人都很难找出错误所在。同意,谢谢。我只是把项目炸掉了,然后又启动了另一个C++。好,那么我如何告诉XCug使用G++?我想出来了。当选择了main .c时,在XCODE窗口右侧的文件类型,将其改为C++源,并且它通过了错误。@ USE1573041 C++源文件应该命名为代码> CPP 而不是<代码> C.<代码>。使用这个约定,否则每个试图编译代码的人都很难找出错误所在。同意,谢谢。我只是把项目炸掉了,然后又开始了另一个C++。它会像H2CO3那样更名为Me.cp文件,否则这很难让任何人知道它会更好地重命名Maun.CPP,就像H2CO3所说的那样,否则这很难为其他人想出。