0

我目前正在自学 C++,我目前被困在这个问题上。

我想创建一个保存 Text(string) 和 Number(double) 循环的程序。

#include <iostream>
#include <iomanip>
#include <cstring>

using namespace std;

int main() {

    string words[999],addwords;
    double numbers[999],addnumbers;
    int totalwords=0,totalnumbers=0;
    head:
        cout << "Word: "; getline(cin,addwords);
        words[totalwords] = addwords;
        totalwords+=1;

        cout << "Numbers: "; cin >> addnumbers;
        numbers[totalnumbers] = addnumbers;
        totalnumbers+=1;
        goto head;
}

EOF

输出必须是:

单词:一些字母
数字:010102
单词:一些字母
数字:010102
{loop}

此代码的输出:

单词:一些字母
数字:010102
单词:数字:202010

谢谢你的帮助。

4

1 回答 1

0

在现代 C++ 中,更好的做法是使用独立getline方法,如下所示:

std::string s;

std::cout << "Enter some text:";
std::getline(cin, s);

如果您要像上面一样循环执行此操作,那么我还建议您使用:

std::cin.clear();
std::cin.sync(); 

在每次下一个连续读取之前,所以它看起来像:

std::cout << "Enter some more text:";
std::cin.clear();
std::cin.sync();
std::getline(cin, s);

除此之外,您的代码还有其他问题,其中最重要的是 GOTO 的使用。您使用什么资源来学习 C++?

于 2012-12-13T04:14:55.080 回答