[英]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.