簡體   English   中英

在main函數中使用類中的數組

[英]Using array from class in main function

請考慮以下代碼:

#include <iostream>
#include <string>
#include <algorithm>

int main()
{
    class treasure
    {
    public:
        char name[100];
        double value[100];
        double weight[100];
    };

    int itemNumber, totalWeight, i;

    treasure item;

    std::cout << "Enter total item weight: " << std::endl;
    std::cin >> totalWeight;
    std::cout << "Enter total item number: " << std::endl;
    std::cin >> itemNumber;
    for( i = 0; i < itemNumber; i++)
    {
        std::cout << "Enter item name: " << std::endl;
        std::cin >> item.name[i];
    }

    return 0;
}

我想在數組中輸入5個項目,但它只是要求兩個項目。 它首先需要一個項目,然后在打印三行后再次輸入另一個項目。 似乎是什么問題。 出了什么問題?

char name[100]; 意味着您最多可以保存100個char類型的項目,而不是100個字符串。

這里一個重要的影響是你的輸入是緩沖的。 std::cin >> item.name[i]; 從輸入緩沖區中獲取一個char並將其寫入name[i] 其余的輸入保留在緩沖區中,將用於下一次執行cin ,即下一次執行相同的代碼行。

因此,如果輸入例如'abc',則將'a'保存到item.name[0] ,將'b'保存到item.name[1] ,將'c'保存到item.name[2] 對於item.name[3] ,輸入緩沖區為空,因此它等待您的下一個輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM