是老师给我们分配了一个使用C++的作业,因为我不是在寻找解决方案来完成整个程序,所以我只会询问基于我挣扎的信息。
我让我的程序允许用户选择他们想要打开的文件。要打开的文件将包含stateInitials、miles和numberOfShelters。每一个后面都有一个空格。
看起来像这样
wv 4.0 3 nc 32.7 4 sc 43.2 10
我首先需要读取stateInitials,然后将它们放在自己的数组中,然后将里程放在自己的数组中,numberOfShelters放在自己的数组中。有16行相同重复模式,因此stateInitials数组应该容纳16行,与其他两个数组保持相同。我不能用向量。我不能用字符串。只能使用C样式字符串。我不知道如何创建一个包含16 c样式字符串的数组。我已经搜索了大约8个小时,唯一的解决方案超出了老师对我们的期望。我们确实覆盖了二维数组,我试着使用它们,但得到了一个糟糕的结果。我只需要一个解决方案来创建一个包含c字符串的数组,并尽可能多地解释,这样我就可以理解您的方法了,谢谢。
发布于 2014-04-13 18:06:59
// have an array for each of the fields
// stateInitials is two-dimensional as it stores many characters for each state
const char stateInitials[Num_States][Max_State_Size];
int miles[Max_States];
int numberOfShelters[Max_States];
// work through the input a state at a time...
for (int i = 0; i < Num_States; ++i)
// if you can't get a space-delimited state name, miles and numberOfShelters, fail
if (!(stream.getline(stateInitials[i], Max_State_Size, ' ') &&
stream >> miles >> numberOfShelters)
{
std::cerr << "bad input for state # " << i + 1 << '\n';
exit(EXIT_FAILURE);
}
如果允许您使用向量和字符串,这将更加简洁。您需要事先创建一个ifstream
(我假设它被称为"stream
"),并为最大数组边界创建常量。
发布于 2014-04-13 17:17:06
char *stringArr[N] = new char*[N];
stringArray[x] = "hello";
这不是你要找的吗?
https://stackoverflow.com/questions/23050366
复制相似问题