显然,太多的 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/