[英]changing printf to cout
我仍然不太熟悉C ++,在使用cout
需要一些帮助。
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++)
{
printf("[%d] --> %c", i, letterGrades[i]);
if (i == 3) // how can I print \n when i == 7 , 11 , 15 , 19....
{
printf("\n");
}
}
}
这是我正在尝试做的,并且工作得很好。 但是,我不知道如何使用cout编写此代码。
另外,我将结果以4列的表格格式打印。 所以结果可以像这样
[0] --> A [1] --> A [2] --> A [3] --> A
[4] --> A [5] --> A [6] --> A [7] --> A
[8] --> A [9] --> A [10] --> A [11] --> A
cout
是实例的类对于许多类型都有聪明的重载, <<
,包括char
, int
和const char[]
(对于字符串文字):
所以你可以写
std::cout << "[" << i << "] --> " << letterGrades[i];
代替您的第一个printf
和
std::cout << "\n";
第二个。 您可以使用"\\t"
将制表符插入流中。
所有这些都对性能造成了轻微的影响,这应该可以忽略不计。 您平台上的I / O。
另外,请考虑阅读C ++:“ std :: endl”与“ \\ n”进行进一步研究。
最后,使用
if (i % 4 == 3){
// i is 3, 7, 11, 15, 19, etc
}
用于定期换行的条件检查。 %
是余数运算符。
在for循环中,如下所示:
std::cout << "[" << i << "]" << "-->" << letterGrades[i];
if (i == 3){
std::cout << "\n";
}
其实很容易
for (int i = 0; i < 25; i++)
{
cout << "[" << i << "] --> " << letterGrades[i] << (i%3==0)?endl:"";
}
让我解释一下代码
cout需要按位操作才能在流中传递。 这基本上意味着您需要使用“ <<”运算符来告诉它要打印什么。
最后一位(i%3==0)?endl:""
。 如果您不熟悉?
运算符,它的作用是,如果()
中出现的条件为true,它将评估:
之前的部分,否则,将评估后面的部分。
例如:-
print((1>0)?"Hello":"World") \\ Output: Hello
print((false)?"Hello":"World") \\ Output: World
%
也是我们可以使用的整洁运算符。 它除以数字并返回余数。 例如:-
print(10%5) \\ Output: 0
print(5%2) \\ Output: 1
所以我用它来看看在第三列之后是否应该有一个行终止符endl
(“ \\ n”),
希望这可以帮助
在第3、7、11等行之后插入换行符(或std :: endl)的最简单方法可能是让int计数每一步
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(array) / sizeof(datatype))
所以你可以
for (int i = 0; i < (sizeof(letterGrades) / sizeof(char)); i++)
而不是硬编码25
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.