我对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
答案 0 :(得分:4)
cout
是一个实例的类对<<
有许多类型的聪明重载,包括char
,int
和const char[]
(对于字符串)文本):
所以你可以写
std::cout << "[" << i << "] --> " << letterGrades[i];
代替您的第一个printf
和
std::cout << "\n";
表示第二个。您可以使用"\t"
将制表字符注入流中。
这一切都取得了轻微的性能打击,这应该可以忽略不计。平台上的I / O.
另外,请考虑阅读C++: "std::endl" vs "\n"进一步研究。
最后,使用
if (i % 4 == 3){
// i is 3, 7, 11, 15, 19, etc
}
对条件检查定期换行。 %
是余数运算符。
答案 1 :(得分:0)
在for循环中这样的东西:
std::cout << "[" << i << "]" << "-->" << letterGrades[i];
if (i == 3){
std::cout << "\n";
}
答案 2 :(得分:0)
实际上很容易
for (int i = 0; i < 25; i++)
{
cout << "[" << i << "] --> " << letterGrades[i] << (i%3==0)?endl:"";
}
让我解释一下代码
cout采用按位操作传入流。这基本上意味着什么 你需要使用“&lt;&lt;”操作员告诉它要打印什么。
最后一位(i%3==0)?endl:""
。如果您不熟悉?
运算符,那么如果()
中出现的条件为真,那么它将评估:
之前的部分,如果不是,那么它我会评估后来的
例如: -
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 :(得分:0)
在每个第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