将printf更改为cout

26 浏览
0 Comments

将printf更改为cout

我对C++还不太熟悉,需要一些关于使用cout的帮助。\n

int main()
{
    char letterGrades[25] = { 'a', 'b', 'c', 'd', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', };
    for (int i = 0; i < 25; i++)
    {
        cout << "[" << i << "] --> " << letterGrades[i];
        if (i == 3)      // 当i == 7,11,15,19时,如何打印\n?
        {
            cout << "\n";
        }
    }
}

\n这是我想要做的,它完美地运行。然而,我不知道如何使用cout编写这段代码。\n另外,我希望将结果以每行4个的表格格式打印出来,结果可以看起来像这样:\n

[0] --> A [1] --> A [2] --> A [3] --> A
[4] --> A [5] --> A [6] --> A [7] --> A
[8] --> A [9] --> A [10] --> A [11] --> A

0
0 Comments

问题的出现原因:

在上述代码中,使用了printf函数来输出内容。然而,printf函数是C语言中的输出函数,在C++中,更常用的是使用cout来输出内容。因此,问题的出现原因就是使用了不适用于C++的printf函数。

解决方法:

将printf函数替换为cout函数,即可解决这个问题。cout函数是C++中的标准输出流对象,可以用来输出内容。

以下是修改后的代码:

int endl_count = 1;
for (int i = 0; i < 25; i++)
  {
    std::cout << '[' << i << ']' << " --> " << letterGrades[i];
    if (endl_count == 3) {
      endl_count = 0;
      std::cout << std::endl;
    }
    endl_count++;
  }

另外,为了获取数组的大小,可以使用sizeof运算符。可以将数组的大小除以元素的大小来计算数组的长度。因此,在此代码中,可以使用以下代码来获取letterGrades数组的大小,而不是硬编码的数字25。

for (int i = 0; i < (sizeof(letterGrades) / sizeof(char)); i++)

通过这样修改代码,就可以将printf函数替换为cout函数,并且使用sizeof来动态获取数组的大小,而不是硬编码的数值。

0
0 Comments

改变printf为cout的原因是为了使用C++的输出流而不是C的输出函数。printf函数是C语言中用于格式化输出的函数,而cout是C++中的输出流对象。这个问题可以通过将printf函数替换为cout来解决。

解决方法如下所示:

for (int i = 0; i < 25; i++)
{
    cout << "[" << i << "] --> " << letterGrades[i] << (i%3==0)?endl:""; 
}

需要注意的是,cout使用"<<"运算符来指定要输出的内容。在这段代码中,使用了三元运算符来确定是否在第三列后添加换行符"\n"。

这个问题的解决方法很简单,只需要将printf函数替换为cout,并使用适当的语法来指定输出内容和格式。同时,需要注意cout是C++的特性,所以在C++代码中使用时更加方便。

0
0 Comments

问题的出现原因:原来的代码中使用了printf函数进行输出,而希望将其改为使用cout进行输出。

解决方法:将printf函数替换为cout,并使用<<操作符进行输出。同时,需要注意对于不同类型的数据,需要使用不同的重载函数。

文章整理如下:

在这个问题中,需要将原来的printf函数替换为cout进行输出。cout是一个实例化对象的类,它具有许多重载的<<操作符,可以用于输出多种类型的数据,包括char、int和const char[](用于字符串字面值)。

所以,可以将原来的printf语句:

printf("[%d] --> %s", i, letterGrades[i]);

替换为:

std::cout << "[" << i << "] --> " << letterGrades[i];

同样地,可以将原来的printf语句:

printf("\n");

替换为:

std::cout << "\n";

如果希望在输出中插入制表符,可以使用"\t"字符:

std::cout << "\t";

虽然使用cout进行输出会略微降低性能,但在大多数平台上,这个性能损失可以忽略不计。

另外,还可以参考C++: "std::endl" vs "\n"进行进一步的学习。

最后,对于周期性的换行检查,可以使用条件语句:

if (i % 4 == 3){
    // i是3、7、11、15、19等等
}

其中,%是求余运算符。

我认为,使用单个字符'\n'进行换行比使用字符串"\n"更好,参考stackoverflow.com/a/8311177/3313064

0