我是一名计算机科学专业的学生,今天我收到了一个非常特别的作业,需要使用C++编写。直到今天我一直在学习C语言,对于这个任务来说有些盲目。
在C语言中,我通常会使用以下内容:
在C语言中,我通常会使用以下内容:
printf("\n\n\t%-30s %-7d liters\n\t%-30s %-7d liters\n\t%-30s %-7d km",
"Current gasoline in reserve:",
db.currentGas,
"Total gasoline used:",
db.usedGas,
"Total travel distance:",
db.usedGas);
由于作业要求用C++编写,所以我尝试了以下代码:
cout << setw(30) << "\n\n\tCurrent gasoline in reserve: "
<< setw(7) << db.currentGas << "litres"
<< setw(30) << "\n\tTotal gasoline used: "
<< setw(7) << db.usedGas << "litres"
<< setw(30) << "\n\tTotal travel distance: "
<< setw(7) << db.travelDistance << "km";
但是似乎 C 语言中的 %-30s
和 C++ 语言中的 setw(30)
存在一些差异?
#include <cstdio>
而不是#include <stdio.h>
。我个人经常使用printf(有时也用(s)scanf)函数,因为它比C++流更方便。另一方面,如果涉及到复杂的类或者typedef在所有涉及平台上都不相同(例如uint32_t
),后者会非常方便。因此,如果任务要求仅使用C++,则可以保留对printf的调用 - 如果要求明确使用流,则需要进行更改... - Aconcaguafprintf(stderr, "[...] failed with error %d (%s)\n", errno, strerror(errno));
vs.std::cerr << "[...] failed with error " << errno << " (" << strerror(errno) << ')' << std::endl;
. 如果已经有代码可以正确工作,我会遵循“不要触碰运行中的系统”的原则,继续使用它。 - Aconcagua