首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么getcwd()不符合ISO C++?

在C++中,getcwd()函数是来自C语言的POSIX函数,而不是C++标准库的一部分。因此,它不符合ISO C++标准。

为了在C++中获取当前工作目录,您可以使用C++17中引入的std::filesystem::current_path()函数。这是一个更符合C++风格的方法,并且具有更好的跨平台兼容性。

以下是一个使用std::filesystem::current_path()的示例:

代码语言:cpp
复制
#include<iostream>
#include<filesystem>

int main() {
    std::filesystem::path p = std::filesystem::current_path();
    std::cout << "Current working directory: " << p << std::endl;
    return 0;
}

请注意,要使用std::filesystem库,您需要在C++17或更高版本中编译,并在代码中包含#include<filesystem>头文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 为什么都说C++太复杂?

    作为对比,C语言,截止到C11,关键字是44个 显然,C++比C复杂,其关键字比C多一倍有余。 ? 但也有观点认为,C++只有在被孤立看待的时候,才会觉得复杂性。 设计任何一门语言都是有背景的。...由于C++相当流行,因此得到结论: 人们愿意为了语言所提供的强大表现力和高效率而放弃对简单性的要求。 既然如此,那为什么要解决的问题越复杂,工具就不得不复杂? 原因有三个。...第一个是类库和语言语意 诸如C++中的初始化和赋值,在许多的语言中几乎都没有什么区别,比如C。 那为什么在C++中却如此重要呢? C++允许变量“拥有”一定的资源,如果值改变,就必须放弃这些资源。...第二个是折中方案 还有比如界面设计,在C++中有很多都是给类设计提供一种简化的工具,协助他们解决用户界面的问题。 所以用C++设计类比用其他语言会难更多。 但同时解决方案也更广泛。...如果世界上有些地方不符合他们所设想的模型,就干脆直接忽略掉。 还有一些语言则是把复杂性直接扔给用户。(如果用户可能不管行,就赢得了博弈,这就是为什么那么多不完善的软件产品在尚不完善时就交付了)。

    55510

    不找C++的工作,为什么要学习C++?

    为啥是C++? c++贴近底层,它细节描写繁杂,难度系数大,阐释的是面向过程编程思想,无法用在实际中客户体验度优良的项目开发设计。...学C++的实际意义主要表现在哪儿? 或许好的C++编程开发人员,找个高薪工作是做的到的。这算作用之一。这又是许多人为什么挑选语言编程的原因。其实我很想问,假如编程并不是高薪职位,还会有几个去学?...当凡事都来的顺其自然的那时候,你就会发觉计算机老前辈们的聪慧了,你也就学通了编程,而并不是只学通C++这门编程语言! 那麼,针对C++范筹,怎样才算学好C++?我觉得这一问题需要问你。...你会那样的来扪心自问:不要看一切C++的书,对1个搞不懂计算机的人讲叙C++代表什么?你能想起多少C++的东西?你能顺理成章的给他们解释需不需要有面向对象这类编程思想?...学好C++都可以从这几个方面去检验: 1:兼容C语言的一部分; 因此学好C++,务必以学好C语言为前提条件。同理:学好上层语言如PHP,JS,java,又必需应以C/C++为前提条件。

    2.2K40

    为什么这么多人惧怕C++?

    里面涉及到的语法规则太繁琐了,严格意义来说c++不适合做入门语言,但是目前大型的客户端软件框架使用c++作为基础开发语言还不在少数,根本原因又是啥?...(1).先看历史方面的原因,c++是在c语言基础上面拓展出来的,另外的一套的不同的编程思想(面向对象)但是c++里面为了兼容C语言做了大量怪异的语法,使用的适合陷阱的确优点大,其实java的诞生也c++...,还能通过指针直接操作底层的硬件,这就是为什么很多大型的软件框架使用c++的一个根本原因所在,在满足面向对象框架的同时在执行效率或者操作底层硬件方面也有其自身的优势。...(2).都在批判c++语言繁琐,语法混乱,但是同时造就另一个方面,熟悉了这套体系能打造出灵活性极强的框架,这也是为什么很多有经验的c++高手,还是愿意选择c++作为底层框架设计语言,规则再多掌握熟练了,...解决问题的速度一样惊人,不建议小白直接选择c++作为入门语言,但是如果具备一定的编程基础了,再去学习使用c++,一样能做出不错的框架。

    79690

    为什么大家都怕学C++?

    前些日子有个学习C++编程的小伙伴,跟我聊到说已经换编程语言了,换成java了,说到C++看到后面直接就没法进行下去了,越看越迷糊。为什么大家都觉得C++难学? C++到底难在哪? ? 一....这也是为什么不建议初学者开始选择比较难语言学习的原因。一个浪涛把那点信心拍在沙滩上,来回折腾几次估计距离放弃不远了。...C++在面向对象语言里面的语法复杂度算是最高的了,常见的java语言相比C++已经简单了许多,主要指的是语法细节方面。...C++在语法设计上尽量模板化,集成性。又有多少人对模板类,类模板,模板函数,函数模板,这些概念性的东西晕晕乎乎的。总之一句话C++语法细节太多,太繁杂不适合作为入门语言来使用。 ?...很多架构师对C++倒是推崇备至,有些人甚至喊出了C++够学一辈子的。博大精深,非常有意思。

    66450

    为什么Python比C++慢很多?

    话说为什么大家会集中讨论GIL?...对于n=13,C++代码跑了0.48秒。为了确保不是编译器悄悄干了活,我特地打成了-O0(实际上开O2能到0.2秒左右)。Python跑了24秒。...对于这个例子,最直接的影响其实在于:Python是逐句解释执行的,C++是先编译成本地代码,期间还有编译期的类型检查,不存在动态类型、动态检查,并且可以进行编译器优化。...这段代码的运行时间直接就缩短到了0.4s,和C++版本的O0编译后的程序速度几乎一样。这还是考虑到JIT需要预热的情况在内。...这段代码,若是计算15的规模,只需要6.5s左右,甚至优于开O2的C++版本。 究其原因,JIT不仅仅在运行过程中将代码转为本地机器码,同时还会尝试进行优化。

    79750

    C++为什么能重夺年度语言?

    2003年对于C++也是特别的一年,C++在TIOBE上的流行指数一度逼近18%,可谓如日中天,所以毫无悬念,第一届年度语言就是C++。 ▲图源:TIOBE官网 不过,这也是C++的顶点。...Part.2 C++为什么衰落 C++有太多问题,太应该衰落了。概括起来也不复杂,就三个字“太复杂”。...于是,C++连同灾难性的指针一起,似乎只能死于选择太多。 Part.3 C++为什么重新流行 那么,C++为什么重新流行起来了呢? 这确实是个有意思的问题。...C++肯定是做对了点什么,这才是C++重夺年度语言的新闻背后,最需要我们关注和思考的事情。 那么,C++究竟做对了什么呢? 这不是一个很好回答的问题。...Part.4 C++该怎么学 C++日久弥新,相信许多人都动过学一学C++的念头,但是,C++“难学”的名声在外,又让许多人打了退堂鼓。C++之所以让人感觉难学,主要是因为复杂和庞大。

    88620

    C++为什么适合桌面软件开发?

    从事C++编程开发多年,今天就自己对C++这门编程语言的认知给大家做个简答的介绍,C++这门编程语言在实际应用的厂家如何,以及在未来编程序列中处于一个什么地位。 ?...C++因为其高效性还是很多开源框架首选编程语言,现在的安卓系统中间框架层就是C++和java共同完成的框架,现在安卓框架从性能角度考虑已经向着C++迈进了,从框架和以及性能上考虑C++还是最佳的选择,但是...像Qt对于C++语法的依赖还是非常大,玩转Qt必须对C++的基本语法有深刻的了解,因为在函数调用过程中用的都是C++的语法,相当于需要具备Qt常见控件的使用方法加上C++必备语法才能玩转这块编程。...这块没有单独的行业限制,比如现在的人工智能入口语言用的是python,但在涉及到性能模块会用到C/C++,很多服务器后台处理模块也会用到C/C++编程,涉及到性能的模块底层实现离不开C/C++。 ?...C++未来发展趋势 虽然现在很多人对C++繁杂的语法表示非常,但是性能和编程思想还是很多人编程老手的最爱,在很多领域还是首要选择,初学者第一次接触C++依然还会感觉无助,磨合的时间越长感觉起来越是亲密,

    2.1K20

    Node.js为什么需要C++扩展?

    相当于JS 通往 C/C++世界的一扇门: Addons provide an interface between JavaScript and C/C++ libraries....二.实现方式 在 Node.js 中,编写一个 C++扩展有 3 种方式: 直接手搓:基于 Node、V8、libuv 提供的 C++ API 直接写,但要手动处理这些 API 在不同 Node 版本下的兼容性问题...C++扩展来实现尤为合适: 计算密集型模块,C++的执行性能一般要高于 JS 将现有的 C++类库低成本地封装成 Node.js 扩展,供 Node 生态使用 Node.js 提供的原生能力无法满足需要...,比如fsevents JS 语言在一些方面存在先天不足(例如数值精度、位运算等),可以通过 C++来补足 P.S.注意,运行时初始化 C++模板本就存在一些开销,在苛求性能的场景要把这个因素考虑进来,...并且 C++并不总是比 JS 快(比如正则匹配的某些场景) 参考资料 C++ Addons | Node.js v14.0.0 Documentation why write C/C++ addons

    2.4K10

    C++的性能救星,为什么是它?

    在C++中,类型系统的复杂性使得开发者可以精细地控制资源管理和性能优化。然而,这种复杂性也带来了不少性能负担。平凡类型作为一个特殊的类别,不仅提供了极简的内存管理模型,还能大幅提升程序性能。...本文将深入探讨什么是平凡类型,为什么它如此重要,以及它的优势与劣势。 平凡类型 平凡类型是指那些没有用户定义的构造函数、析构函数、拷贝构造函数和赋值运算符的类型。...内置变量中的平凡类型 C++的标准库为我们提供了许多内置类型,这些内置类中的平凡类型包括: 基础数据类型:int、char、float、double等基础数据类型都是平凡类型。...C++标准库的std::array:std::array是一种固定大小的数组,它的类型是平凡类型。...总结 综上所述,平凡类型是C++中性能优化的重要工具。它提供了简单的内存管理模型,减少了内存分配和资源管理的复杂性,显著提升了程序的执行效率。然而,它也有其局限性,不能满足所有场景的需求。

    6610

    C++为什么要弄出虚表这个东西?

    C++编译器实际会帮你生成一个类似上例中C语言写法二的形式。这也算是C++ zero overhead(零开销)原则的一个体现。...当然实际并不完全一致,因为C++支持重载的关系,会存在命名崩坏。但主要思想相同,虽不中,亦不远矣。 看到这,你会明白:C++中类和操作的封装只是对于程序员而言的。...输出: height:168 weight:50 age:20 height:168 weight:50 age:20 这是为什么呢?...指针实际指向的还是子类对象的内存空间,可是为什么不能调用到子类的desc()?这个就是我在第一部分说过的:类的数据(成员变量)和操作(成员函数)其实是分离的。...好了,现在我们对于C++如何应用多态有了一定的了解,那么多态又是如何实现的呢? 终于我们谈到虚表 C++具体多态的实现一般是编译器厂商自由发挥的。

    52310

    为什么C++是最难学的编程语言?

    c++最大的缺点是让你花费大量时间学习这门语言的语法上,而不是解决问题本身上 等我学会了C++我就回家结婚 这个世界本来就是残酷的,所以你不能怪C++向你展示了世界的本质 大家都觉得很难等你攀登到高峰的时候发现...当然这其中有很多程序员自嘲的语意多一点,但是C++的确难道很多英雄好汉,让很多在深陷其中无法自拔但又不舍得抽身离去。 为什么C++让人觉得这么难学?...但有一点不可否认,C++是很多架构师的最爱,也是很多编程大咖的最爱,记得十年前在某著名编程网站的论坛里面,特别是C++论坛里面经常见很多C++大咖在里面指导江山,很多小白忙活了半天的代码,让大咖几句话搞掉...现在很多有名的软件框架都能看到C++的影子,其实很简单,在进行面向对象的框架设计还能不影响效率首选只能是C++,现在大家使用的安卓手机的框架层很多代码都是C++,还有大家天天使用的浏览器内核代码几乎全是...C++,在很多领域C++有着不可比拟的优势,学会了会明白为啥这门语言属于编程语言的王者,为什么有这么多人学不会还要硬着头皮继续学,可以说C++是一门啃着最有滋味的编程语言,痛苦并快乐着。

    2.2K31
    领券