首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建三个数组来填充c样式字符串

创建三个数组来填充c样式字符串
EN

Stack Overflow用户
提问于 2014-04-14 00:59:10
回答 2查看 75关注 0票数 0

是老师给我们分配了一个使用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字符串的数组,并尽可能多地解释,这样我就可以理解您的方法了,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-14 02:06:59

代码语言:javascript
代码运行次数:0
运行
复制
// 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"),并为最大数组边界创建常量。

票数 1
EN

Stack Overflow用户

发布于 2014-04-14 01:17:06

代码语言:javascript
代码运行次数:0
运行
复制
char *stringArr[N] = new char*[N];
stringArray[x] = "hello";

这不是你要找的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23050366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档