簡體   English   中英

如何接受空格分隔的整數並將它們存儲在 C++ 中的向量中?

[英]How to accept space separated integers and store them in a vector in C++?

我試圖接受N 個間隔的整數,將它們存儲在一個向量中並打印它們。 這是我的代碼:

#include <string>
#include <vector>

using namespace std;
int main() {
  string rawInput;
  vector<string> numbers;
  while( getline( cin, rawInput, ' ' ) )
  {
    numbers.push_back(rawInput);
  }
  for (int j = 0; j < sizeof(numbers)/sizeof(numbers[0]); ++j) {
    cout << numbers[j] << " ";
  }
}

它不起作用。 運行此代碼后,我沒有得到任何輸出。 請舉一個浮點數和整數的例子。 請告訴我如何打印它們。 謝謝你。

對於空格分隔的整數,不要使用getline 構造整數時,換行符算作空格。

嘗試這樣的事情:

std::vector<int> database;
int number;
while (cin >> number)
{
    database.push_back(number);
}

您可能想問問自己是否真的需要讀取一行整數(或者是否有任何類型的記錄由換行符划定)。

編輯 1:按文本行讀取空格分隔的整數
如果必須按行閱讀,一種方法是使用std::istringstream

std::vector<int> database;
std::string text_line;
while (getline(cin, text_line))
{
    int number;
    std::istringstream line_stream(text_line);
    while (line_stream >> number)
    {
        database.push_back(number);
    }
}

恕我直言,逐行閱讀會增加不必要的復雜性。

暫無
暫無

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

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