带空格的字符串/字符输入

时间:2020-03-04 09:35:30

标签: c++ visual-c++

我正在编写一个基于cmd的小型任务报告程序。在这样做的同时,我学到了很多东西,但是遇到了一个问题。当我尝试用单词之间的空格写下笔记时,我陷入了无休止的循环。我使用node来存储字符串数据,但是它适用于其中没有空格的字符串。

我尝试过cin.getline(Name, sizeof(Name));,它非常适合名称输入,但不适用于数据数组

我想要达到的目的是在while循环中重新运行相同的行,直到endshift变量等于y为止。

    while (end1 != "y")
{
    cout << "Field Treated: ";
    cin >> Field;
    cout << "Hospitalized: ";
    cin >> Hosp;

    SumF = SumF + Field;
    SumH = SumH + Hosp;

    cout << "Notes: " << endl;
    cin >> notez;
    note.createnode(notez);
    cout << "End shift: Y/N" << endl;
    cin >> end1;

}

关于“注释”,我无法输入多个单词/空格的数据

更新:

我知道如果数组中有数据,我需要在循环中读取数据。我需要多次输入“注释”才能在其中包含空格。例如,一个音符可能是1。今天有一天很漫长,所以我小睡了一下。 2.没事。我不知道这是否有意义

我的变量:

    list note;

int SumF = 0, SumH = 0, Field, Hosp, n = 1;
string end1;
char Name[100];
string notez;

//Time

int StartShiftHH, StartShiftMM;
int EndShiftHH, EndShiftMM;

char ch;

1 个答案:

答案 0 :(得分:0)

带有空格的数据无法正常工作,因此我发现getline(cin >> ws, notez);,现在一切正常。数据已正确放入阵列中。

尝试过getline (cin, notez),它没有忽略空格,所以我添加了ws