如何以表格形式输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以表格形式输出相关的知识,希望对你有一定的参考价值。

谁可以帮助我,无法弄清楚如何为Charge-column输出。我需要在该电荷列下输出该输出,但每次当我按下ENTER时它会生成一个新行,因此我的输出显示在新行中。每次输出后都有一个零,不知道它来自哪里。这是我的代码:

#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
float calculateCharges(double x);
int main()
{
    int ranQty; //calculates randomly the quantity of the cars
    double pTime; // parking time
    srand(time(NULL));

    ranQty = 1 + rand() % 5;

    cout << "Car	Hours	Charge" << endl;

    for(int i = 1; i <= ranQty; i++)
    {
    cout << i << "	";
    cin >> pTime ;
    cout << "	" << calculateCharges(pTime) << endl; 

    }
    return 0;  
}
float calculateCharges(double x)
{
    if(x <= 3.0) //less or equals 3h. charge for 2$
    {
        cout << 2 << "$";
    }
    else if(x > 3.0) // bill 50c. for each overtime hour 
    {
        cout << 2 + ((x - 3) * .5) << "$";
    }
}
答案

您每次都要按ENTER键将pTime从命令行发送到程序的标准输入。这会导致换行。新行是导致控制台首先将您的输入交给程序的原因。

为了正确打印,你可以简单地将pTime存储到一个数组中(即最好是在std::vector中,如提到的@ user4581301);计算所需要的并打印出来。就像是:

#include <vector>

ranQty = 1 + rand() % 5;
std::cout << "Enter " << ranQty << " parking time(s)
";
std::vector<double> vec(ranQty);
for(double& element: vec) std::cin >> element;

std::cout << "Car	Hours	Charge" << std::endl;
for(int index = 0; index < ranQty; ++index)
   std::cout << index + 1 << "	" << vec[index] << "	" << calculateCharges(vec[index]) << "$" << std::endl;

每次输出后都有一个零,不知道它来自哪里。

float calculateCharges(double x);这个函数应该返回一个float,你的定义就像一个void函数。解决方案是:

float calculateCharges(double x)
{
   if(x <= 3.0)    return 2.0f;       // --------------> return float
   return 2.0f + ((x - 3.0f) * .5f) ; // --------------> return float
}

以上是关于如何以表格形式输出的主要内容,如果未能解决你的问题,请参考以下文章

如何以表格形式显示Excel数据?

急!我用Java连接了数据库并读取了一个表中的数据,如何在jsp页面中以表格的形式输出查询的数据??谢谢

java中输入输出流如何把数据输出为Excel表格形式

console.table(),在控制台以表格形式输出对象

java中输入输出流如何把数据输出为Excel表格形式

串口屏开发之数据记录控件的使用总结——如何以表格形式记录和显示告警数据