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
{ループ}

このコードの出力:

Words: Some Letters
Numbers: 010102
Words: Numbers: 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 に答える