【发布时间】:2020-06-11 03:26:05
【问题描述】:
我需要一些帮助。 我正在浏览一些工资单数据。 我运行了一个读取 .txt 文件的函数,然后将其存储在数组中。我现在正在尝试编写一个函数,允许您添加到这些数组中(它们是 32 个数组,但文件中只有 20 个元素)所以它需要遍历数组,确保它们不会超出范围,然后将其他数据类型添加到数组中。这就是我的样子。没有错误,但是当我运行它时,它什么也不做:
string AddPayrollData(array<double, kMaxSize> &hours,
array<char, kMaxSize> &pay_type,
array<double, kMaxSize> &pay_rate,
array<string, kMaxSize> &names,
double hours_worked, char pay_t, double pay_r, string full_name,
int &size )
{
int i = 0;
while (size < kMaxSize && i < size)
{
if (hours[i] > 168)
{
cout << "Hours is out of range, set to 0" << endl;
hours[i] = 0;
}
if (pay_type[i] != 'h' || 's')
{
cout << "Incorrect pay type, set to s " << endl;
pay_type[i] = 's';
}
if (pay_rate[i] < 7.25)
{
cout << "Pay is less than minimum wage, set to 7.25 " << endl;
pay_rate[i] = 7.25;
}
if (names[i].find(","))
{}
else
{
cout << "Name Is not in last, first format" << endl;
names[size] = "unknown";
}
i++;
}
if(size >= kMaxSize)
{
cout << "Arrays are full, no payroll data added" << endl;
}
else
{
hours_worked = hours[size];
pay_t = pay_type[size];
pay_r = pay_rate[size];
full_name = names[size];
size++;
}
return "";
}
感谢您的帮助!
【问题讨论】:
-
您没有显示
AddPayrollData()的调用方式。请提供minimal reproducible example。附带说明一下,if (pay_type[i] != 'h' || 's')和if (names[i].find(","))语句并没有按照您的想法执行。 -
我想知道,为什么不使用 std::vector
? -
message1 = AddPayrollData(hours, pay_type, pay_rate, names, 169, 's', 17.25, "Kerr, Shawn", size);
-
@aaronleejackson
if (pay_type[i] != 'h' || 's')应该是if (pay_type[i] != 'h' && pay_type[i] != 's')和if (names[i].find(","))应该是if (names[i].find(",") != string::npos) -
@aaronleejackson 必须重复之前所说的,你为什么不使用
vector?
标签: c++ arrays loops if-statement