c++ - ? : operator on sprintf

标签 c++ printf logical-operators

显然,太多的 Python 或太多的任何动态类型语言对程序员来说都是不健康的。无论如何,我正在努力进行 C++ 练习,并且有一个关于语法的快速问题。我找不到任何应用它的源代码(如果可能的话)。

我可以使用包含 ?: 运算符的语句作为 sprintf 参数吗?这是我的无编译代码,所以你明白了:

return sprintf("The cosine of %2f %s is %2f", angle, (angleType == "g" ? "degrees" : "radians"), result);

angleType 是用户输入的值,指定他输入的是度数还是弧度。

angle 是角度的值。

result 是实际的余弦值。

我想打印一条尽可能具有描述性的消息,所以我想到了这个。

如果可能的话?

谢谢!

最佳答案

是的,您可以在任何需要表达式的地方使用 ?:

您的问题之一可能与条件有关,angleType == "g"。在 C 和 C++ 中,您不能那样比较字符串;您需要使用 strcmp 或类似的东西。除非 angleType 是一个 std::string,在这种情况下这应该可以正常工作。

另一个问题是您似乎期望 sprintf 返回一个字符串。相反, 负责向它传递一个字符串,然后它将其输出写入该字符串。但由于这是 C++,所以最好还是使用 std::string!

如果这不能解决您的问题,请发布您的编译器错误消息!

关于c++ - ? : operator on sprintf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6561911/

相关文章:

c++ - 有没有办法检查编译器是否内联了 C++ lambda 函数?

C++ 初始化列表忽略调用父类构造函数

c++ - C++输出格式化

matlab - 如何在matlab中使用fprintf简短地编写多个变量?

php - !$festive 与 $festive==FALSE 相同吗?

c - 什么时候在 C 中使用双逻辑非 (!!)?

c++ - 如何在MFC中导出mysql结果(选择数据)

c - printf 中的一元运算符

c - 在 C 中设置 Struct 的字符串成员

java - C++ 中的 && 与 Java 中的 && 行为相同吗?