我最近开始寻找用于C ++的新IDE。我曾经使用过Dev C ++,但与其他一些IDE相比,它有点准系统。
我遇到了一个问题,我试图和我的教授谈谈,他说这很可能是由于标准的库实现而不是IDE本身 - 这让我觉得我可以解决它?我会谈到这一点:
在Dev C ++中,当我说printf(“%'14 .2f”,变量)时,它按照我的预期打印。但是,在CLion中,它标记%符号并显示“未知,不完整或可选格式说明符”并打印'14 .2f而不是我的变量。我知道这是因为撇号,但我不知道如何解决它。
有没有人有任何想法?我的教授说GCC的libstd ++应该可以正常工作,但我不知道如何处理这些信息......
谢谢!
编辑:顺便说一下,我在Windows上。
答案 0 :(得分:1)
使用撇号作为printf
格式字符串中的标志字符是POSIX定义的扩展名:
十进制转换结果的整数部分(
%i
,%d
,%u
,%f
,%F
,%g
或%G
)应使用数千个分组进行格式化 字符。对于其他转换,行为未定义。该 使用非货币分组字符。
您的教授是正确的:对此扩展的支持由标准库实现决定,而不是由IDE或编译器决定。
可是:
我的教授说GCC的libstd ++应该可以正常工作,但我不知道如何处理这些信息。
libstdc ++是一个C ++库。它没有提供printf
函数的实现;这是C库的一部分。 (C ++库包含大部分C库。)
您应该研究IDE正在使用的C ++实现(编译器和库)。您可以哄骗CLion使用Dev C ++使用的相同C ++实现。