让用户写入列表

时间:2013-01-20 20:15:37

标签: c++ arrays list vector

我是C ++的新手,我正在尝试制作一个程序,允许运行该程序的任何人写入列表,当他们完成输入“exit”时,它将显示列表。我迷失了如何实现这一目标,任何人都可以帮忙吗?

这就是我所拥有的:

#include <iostream>
#include <string>
#include <unistd.h>
#include <math.h>
#include <vector>

using namespace std;
int main()
{
    string uid;
    write(1,"\E[H\E[2J",7);
    cout << "Enter UID: ";
    cin >> uid;
    cout << "DB: \n\n" << uid << " \n\n""end\n\n";
    return 0;
}

我怎么能把它放在一个循环中,这样他们每个人都可以继续写入列表,直到他们输入“exit”?

2 个答案:

答案 0 :(得分:3)

std中有一个列表 - std::list。仔细看看。有一些功能可以将元素插入其中,您可以在最后遍历它以打印值。

循环就像

一样简单
do{
    //whatever you want to do in the loop
    //read input
    //insert into list
}while(/*condition*/); //condition should be something like
                       //the string is not "exit"

std::string具有与其他字符串和重载运算符进行比较的方法。找到要使用的可以为你提供一个很好的练习。

实际代码没有给出,因为......好吧,那对你没有多大帮助,不是吗?

答案 1 :(得分:0)

由于这个问题没有付出太多努力,我会给出一个你无法理解的复杂答案......

std::vector<std::string> list;
for(std::string i; std::cin >> i && i != "exit"; list.push_back(i));
std::copy(list.begin(), list.end(), std::ostream_iterator<std::string>(std::cout, "\n"));

..但可能是最小的方式(我确信有人会做一个小的,因为我说的)