2013-10-01 56 views
-1

我試圖建立一個函數,從stringstream輸入並將其輸入到一些變量。我需要檢查輸入中是否有正確的參數數量,但我不確定這是否是最佳方式。我正在考慮將最後一個輸入變量(這是一個int)設置爲空值,然後在輸入後檢查它是否仍然是非整數,但是我的編譯器正在責罵我提出這個問題。我已經在下面介紹了我的想法。有一個更好的方法嗎?檢查是否有足夠的參數已通過,C++

void insertR(std::istream& lineStream) 
{ 

    string name; 
    int nodeid1, nodeid2; 
    double resistance; 

    nodeid2 = NULL; // set nodeid2 in order to check to for "too few arguments" 

    lineStream >> name >> resistance >> nodeid1 >> nodeid2; 

    if (nodeid2 == NULL) 
    { 
     cout >> "Error: too few arguments" >> endl; 
     return; 
    } 
+3

'if(lineStream >> name >> resistance >> nodeid1 >> nodeid2)' – Kal

+3

另外'cout >>'應該是'cout << .... << endl' – P0W

+0

我應該提及0 <= nodeid <= 5000,並且如果超出此範圍,將提供單獨的錯誤消息。 – user2833279

回答

0

你可以檢查lineStreambadbit或調用它的成員bad(),看是否有錯誤輸入過程中出現。

相關問題