我可以使用Primf打印字符串的C++数组元素吗?

我可以使用Primf打印字符串的C++数组元素吗?,c++,C++,如果整数在1到9之间,我使用三元运算符将其打印到word中,否则将打印为偶数还是奇数。我不能在三元运算符中使用cout,如果我使用printf,那么它就是在打印一个字符。谁能告诉我怎么做。我想在一行中完成全部工作,可以吗?%d将十进制数字打印到控制台。要打印字符串,您需要%s标记,并确保使用s[i-1]获取它的常量字符*。c_str。您可以使用cout。像这样: #include <iostream> using namespace std; int main() { st

如果整数在1到9之间,我使用三元运算符将其打印到word中,否则将打印为偶数还是奇数。我不能在三元运算符中使用cout,如果我使用printf,那么它就是在打印一个字符。谁能告诉我怎么做。我想在一行中完成全部工作,可以吗?

%d将十进制数字打印到控制台。要打印字符串,您需要%s标记,并确保使用s[i-1]获取它的常量字符*。c_str。

您可以使用cout。像这样:

#include <iostream>
using namespace std;

int main()
{
    string s[] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    int a, b;
    cin >> a >> b;
    for (int i = a; i <= b; i++)
        (i >= 1 && i <= 9) ? printf("%d\n", s[i - 1]) : i % 2 ? printf("odd\n") : printf("even\n");
    return 0;
}

s[i-1]是一个字符串,因此不能使用printf和%d打印它。如果必须使用printf,请尝试使用printf%s\n,s[i-1].c\u str。但您最好使用cout和可读代码,而不要使用晦涩难懂的一行程序。使用%s格式化字符串这是否回答了您的问题?有趣的是你不能用cout。在这里似乎可以很好地工作:您已经包含了std::printf,但这不是std::printf所需要的,那么为什么要使用printf而不是std::cout呢?
#include <iostream>


int main()
{
    std::string s[] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    int a, b;
    std::cin >> a >> b;
    for (int i = a; i <= b; i++)
        std::cout << ((i >= 1 && i <= 9) ? s[i-1]: (i % 2) ? "odd": "even") << "\n";
    return 0;
}