草庐IT

c++ - 如何在 C++ 中表示线段的 vector 方程?

我正在处理计算机图形学。我想表示一条有两个端点的线,然后我想要我的Line2d类有一个返回Vector2d的方法对象。假设,我有以下类(class):structPoint2d{intx;inty;};然后,我可以很容易地用两点表示一条线段:classLineSegment2d{private:Point2dstart;Point2dend;public:......};根据定义,vector由大小和方向组成。classVector2d{private:Point2dp;public:doubleMagnitude(void);PointComponent(void);Vector2d

c++ - 从文件中读取空格分隔的数字直到换行符

我有一个包含以下数据的文本文件。第一行是这样的:54321第二行是这样的:12345我试图一次从一行读取数据,因为我的第一个链表对象将使用第一行的数据,而我的第二个链表对象将使用第二行的数据。我能想出的最好的是以下功能:voidpolynomial::allocate_poly(std::ifstream&in,constchar*file,constchar*number){in.open(file);std::stringstr;charb;intm=0;for(inti=0;!in.eof();++i){in>>b;m=b-'0';a.insert(m);}这种方法存在一些问题。

c++ - C++ 中没有 `while (!my_ifstream.eof()) { getline(my_ifstream, line) }`?

关于thiswebsite,有人写道:while(!myfile.eof()){getline(myfile,line);cout这是错误的,请仔细阅读eof()的文档成员函数。正确的代码是这样的:while(getline(myfile,line))cout这是为什么? 最佳答案 有两个主要原因。@Etienne指出了一个:除了到达文件末尾之外的其他原因,读取可能会失败,在这种情况下,您的第一个版本将进入无限循环。然而,即使没有其他故障,第一个也无法正常工作。eof()不会被设置,直到after由于到达文件末尾而导致读取失败。这意

c++ - 错误记录 C++ 预处理器宏 __LINE__、__FUNCTION__

我试图将一个简单的错误记录合并到我现有的应用程序中,目前它仅使用cout报告错误所以我希望使用保持类似的界面运算符(operator)。但是我希望它记录该行并运行发生的错误,但我不想输入__LINE__,__FUNCTION__每次我需要登录。有谁知道我可以用来允许__LINE__的技巧吗?要在另一个函数中使用的宏,而不是报告调用行?希望这是有道理的。classmyLogClass{uint8_tlevel;public:booloperator而不是每次都这样myLogClass我只想能够做到:myLogClass 最佳答案 my

Line Out vs Headphone Out 有什么区别

lineout和headphoneout在audio设备上经常用,但有什么区别呢?一句话概括线路输出(lineout)是一个音频端口,用于将线路电平音频信号从一个音频设备发送到另一个音频设备。另一方面,耳机输出(phoneout)是一个音频端口,可提供用于驱动耳机的放大线路电平信号。 主要是驱动能力不一样对于lineout,一般需要接pre-amp再接喇叭 对于headphoneout,可以直接连接设备他们有什么区别:1、幅度和音量范围不同2、输入信号质量不同,一般来说headphone经过了功放,有一定的底噪3、阻抗,对lineout,阻抗较大,大约是100ohm或者更大,对于headpho

c++ - 使用 __LINE__ 获取代码行

我尝试使用以下方法打印当前代码的行号:#includevoiderr(char*msg){printf("%s:%d",msg,__LINE__);}intmain(intargc,char**argv){ERR("fail..");return0;}但我总是得到错误的行号,它应该是10而不是5,我该如何解决这个问题?我还尝试使用一些宏:#defineERR(msg)do{printf("%s:%d\n",msg,__LINE__);}而(0)并导致错误:msgnotdeclared 最佳答案 __LINE__将为您提供它出现的行,

c++ - 为什么 "cc1plus: warning: unrecognized command line option"选项的 "no-"仅在出现另一个警告时由 g++ 标记?

>catwarning.cpp#pragmafoobar>catno_warning.cpp#pragmamessage"foobar">g++-Wall-Wno-foobar-cwarning.cppwarning.cpp:1:0:warning:ignoring#pragmafoobar[-Wunknown-pragmas]cc1plus:warning:unrecognizedcommandlineoption"-Wno-foobar"[enabledbydefault]>g++-Wall-Wno-foobar-cno_warning.cppno_warning.cpp:1:17

c++ - CImg库可以画粗线吗

我一直在使用CImg库,并且对它的集成和使用如此简单感到非常满意。但是,我现在想画粗线(即超过一个像素粗)。draw_line函数(here)的API文档中并不清楚这是如何完成的。该函数的第二个版本(就在文档中第一个版本的下方)甚至将纹理作为输入,但同样没有宽度。这么综合的图书馆居然没有这个功能,似乎很奇怪。也许应该使用某种转换来完成?我知道我可以使用多边形(即一个矩形,在该矩形中我将使用直线的法线来计算多边形的角),但我担心这会慢得多。 最佳答案 显然,“开箱即用”是不可能的,但是创建你自己的例程,多次调用CImg的“draw_l

c++ - VC++ 11 中的 std::thread 类导致随机崩溃。任何解决方法?

我在VisualStudio11DeveloperPreview中遇到了一个错误,至少我认为这是一个错误并报告了它,但我很想知道是否有人知道解决方法。当我使用std::thread类创建多个线程时,它会导致应用程序崩溃。有时它会抛出异常,有时会导致访问冲突,有时它会起作用。重现错误的代码如下所示:#include#include#include#includeint_tmain(intargc,_TCHAR*argv[]){std::vectorthreads;for(inti=0;ijoin();deletethreads[i];}return0;}使用静态或动态CRT库并不重要(它

C++11 静态局部变量和线程

对于创建/使用std::thread的类,静态局部变量是否安全?因为当我使用这样的东西时:logger&logger::get_instance(void){staticloggerlg;returnlg;}并尝试退出(强制关闭)可执行文件,它崩溃/不正确退出(VisualStudio2012调试器甚至崩溃)。当我不这样做时,程序会在我强制关闭时正常退出。这是崩溃时的堆栈调用ntdll.dll!77c10dbd()Unknown[Framesbelowmaybeincorrectand/ormissing,nosymbolsloadedforntdll.dll]ntdll.dll!77