草庐IT

File类和IO流

全部标签

c++ - ld : file not found:/usr/lib/crt1. o

在MacOSXSierra上尝试使用PGI编译Fortran时,出现错误ld:filenotfound:/usr/lib/crt1.o我找到了适用于旧版MacOSX的解决方法(http://www.pgroup.com/userforum/viewtopic.php?t=4578)sudoln-s/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/crt1.o/usr/lib/crt1.o但是,对于Sierra,系统完整性保

c++ - 为什么我们需要 io_service in boost?

我正在尝试学习Boost.asio库。现在我可以创建一个可以通信的客户端和服务器。为什么我们需要定义一个io_service对象?因为如果这是套接字可用于与底层操作系统注册/通信的唯一对象类型,那么我们为什么还要定义它。套接字不能自动猜测吗?我在这里缺少什么? 最佳答案 你是在逆向发现为什么单例不好吗?这就是你的答案。完成后,您就可以控制并决定在Asio中的服务之间共享多少资源。正因为如此,您现在可以在您的应用程序中使用Asio,即使您链接到的库之一也使用它将Asio用于每个线程的服务(因此不会有共享状态)或每个服务的多个线程等等

c++ - 为什么 std::FILE 是大写字母?

我想知道为什么C和C++的FILE类型拼写为大写字母。其他类型用小写字母拼写。编辑参见C++11的§27.9.2,表134 最佳答案 在非常古老的C方言中,在有任何标准化之前,当FILE类型被发明时,并且在typedef存在之前,该名称是一个宏:#defineFILEstruct_iobuf惯例是让宏以全部大写命名。http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/stdio.h(小写的宏只是函数的优化版本——其中许多也作为适当的函数存在)

c++ - 类和结构嵌套

这段代码我不是很清楚外层是一个class,内层是一个struct,谁能帮我解释一下?classStack{structLink{void*data;Link*next;Link(void*dat,Link*nxt):data(dat),next(nxt){}}*head;public:Stack():head(0){}~Stack(){require(head==0,"Stacknotempty");}voidpush(void*dat){head=newLink(dat,head);}voidpeek()const{returnhead?head->data:0;}void*pop(

c++ - FILE * 不是左值吗?

尝试破译我的第一个大程序,在那种情况下,它是一个LISP解释器。对于理解别人的代码的世界,我是全新的,而且它似乎比自己编写代码要复杂得多。我目前的困难很难产生一个最小化版本,因为我目前的困难在于最小化现有代码以便更好地掌握它,而且我几乎在每次尝试修改时都会遇到错误。解释器使用Current_Input和Current_Output全局变量来抽象读写文件和小部件。我只是想让它写入标准输出。相关行是:Current_Output=alloc_objet(sizeof(Widget*));objet_type(Current_Output)=OWIDGET;Owidget(Current_O

c++ -/usr/bin/ld : cannot find : No such file or directory

我正在关注this尝试使用一些SDL扩展库的SDL教程。我的代码与theirs相同但我仍然无法制作文件,这让我相信问题出在我的makefile中,它看起来像这样:CXX=g++#Updatethesepathstomatchyourinstallation#Youmayalsoneedtoupdatethelinkeroptionrpath,whichsetswheretolookfor#theSDL2librariesatruntimetomatchyourinstallSDL_LIB=-L/usr/local/lib-lSDL2-Wl,-rpath=/usr/local/lib,-

c++ - 从 std::thread 调用 boost::asio::io_service::run

我有一个处理我的连接的类,它有一个boost::asio::io_service成员。我想从std::thread调用io_service::run(),但我遇到了编译错误。std::threadrun_thread(&boost::asio::io_service,std::ref(m_io_service));不起作用。我看到了使用boost::thread执行此操作的各种示例,但我想为此坚持使用std::thread。有什么建议么?谢谢 最佳答案 我知道有两种方法,一种是通过lambda创建std::thread。std::t

c++ - 无法编译项目,缺少 io.h 文件

我无法为使用WindowsMobile(基于WindowsCE)操作系统的移动设备编译C++项目,VisualStudio中的VisualC++编译器失败:Error1fatalerrorC1083:Cannotopenincludefile:'io.h'编辑我正在尝试编译SQLite合并,shell.c文件包含对此io.h的调用,但文件中缺少io.h。我用谷歌搜索但找不到如何获取此.h文件。有人能指出我正确的方向吗? 最佳答案 io.h文件在用于基于WindowsCE的系统(如WindowsMobile)的SDK中不可用。事实上,

类和对象(中)

文章目录类的默认成员函数1.构造函数1.概念2.无参时主函数中的写法3.特性特性1-3特性4特性5内置类型(intchardouble)自定义类型特性62.析构函数1.概念2.特性3.先构造后析构4.对于成员变量3.拷贝构造函数1.值传递2.引用传递3.内置类型(intchardouble)4.浅拷贝问题4.赋值运算符重载1.运算符重载1.自定义类型为什么要使用运算符重载2.操作符==1.错误写法2.正确写法3.cout3.注意事项4.操作符>5.操作符!=6.操作符2.赋值操作符(编译器默认实现)1.正常使用2.连续赋值情况的考虑传值返回传引用返回5.const成员1.对象调用const成员

c++ - main.cc :5:30: fatal error: folder/file. h: 没有那个文件或目录

当我在Ubuntu终端中输入make时,我得到:main.cc:5:30:fatalerror:folder/file.h:Nosuchfileordirectory文件夹在工作目录下,文件.h在指定文件夹下。当我输入ls时,它还会列出我工作目录中的文件夹和文件。奇怪的是,当我在geany中打开它并要求它在#include它发现它没有问题,但是当它构建它时我得到了错误。是否需要设置一个标志以便它包含文件夹?如果是这样,那会是什么样子? 最佳答案 这在一定程度上取决于您的C编译器,但“通常”在您使用包含文件时语法编译器只会在您在命令行