如何在数组中用C ++定义字符大小?

时间:2015-10-02 23:44:27

标签: c++ arrays char user-input

最近,我一直致力于一个控制台项目,在提示时,用户将输入10个问题(单独)和10个答案(单独),这将成为UI学习指南的基础。

目前,这是我的代码(仅限代码段):

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstdio>


using namespace std;

int main() //The use of endl; in consecutive use is for VISUAL EFFECTS only 
{       
    char z;
    char a[500], b[500], c[500], d[500], e[500], f[500], g[500], h[500], i[500], j[500]; //Questions
    char a1[1000], b1[1000], c1[1000], d1[1000], e1[1000], f1[1000], g1[1000], h1[1000], i1[1000], j1[1000]; //Answers

    cout << "Hello and welcome to the multi use study guide!" << endl;
    cout << "You will be prompted to enter your questions and then after, your answers." << endl << endl;
    system("PAUSE");
    system("CLS");

    cout << "First question: ";
    cin.getline(a,sizeof(a));
    cout << endl;   
    system("PAUSE");
    system("CLS");

在这个片段中,我定义了多个 char变量并为它们分配了一个大小,然后检索用户输入以放入指定的变量。

我的问题是,如何在一个数组中定义单个char变量的大小而不是在一行中使用多个变量?

1 个答案:

答案 0 :(得分:1)

您可以声明一个char数组数组:

#define NQUESTIONS 10
char question[NQUESTIONS][500];
char answer[NQUESTIONS][1000];

然后,您可以使用循环输入问题和答案。

for (int i = 0; i < NQUESTIONS; i++) {
    cout << "Question #" << i+1 << ":";
    cin.getline(question[i], sizeof(question[i]));
}

但C ++执行这些操作的方法是std::vector包含std::string