2014-11-05 103 views
0

在我的結構中,我有一個函數,在這裏我想讀取這行,這些是整數。C++在'std :: cin中不匹配'operator >>'

這裏是代碼(C++)的一部分:

#include <iostream> 
#include <stdio.h> 
#include <conio.h> 
#include <string> 
#include <fstream> 

using namespace std; 

struct kunde 
    { 
     [..] 
    } 
struct kmph_in_mps 
     { 
      int kmph[4]; 
      double result[10]; 

      void kmph_erfassen() //In english: kmph_read 
      { 
       cout << "TEST"; 
       cin >> kmph; 
      } 

我想讀從控制檯公里/小時。 但我只是得到:錯誤:'std :: cin >> kmph'中'operator >>'不匹配|

+2

' kmph'是一個數組。您需要讀入數組的4個元素之一。 – Cornstalks 2014-11-05 17:27:25

+0

那麼'int(&)[4]'或'int *'沒有重載。無論如何,這樣的超負荷應該怎麼辦?如果你決定,你可以添加它。另外,修復你的標籤。 – Deduplicator 2014-11-05 17:27:48

回答

0

你需要寫kmph陣列的每個索引,如

void kmph_erfassen() //In english: kmph_read 
{ 
    cout << "TEST"; 
    for (size_t i = 0; i < 4; ++i) 
    { 
     cin >> kmph[i]; 
    } 
} 
1

默認情況下,你可以這樣做:

cin >> single_int; 

但沒有運營商做

cin >> array_of_ints; 

你必須做一個循環:

for (int& k : kmph) { 
    cin >> k; 
} 

或非C++ 11:

for (int i = 0; i < sizeof(kmph)/sizeof(*kmph); ++i) { 
    cin >> kmph[i]; 
} 
+0

爲什麼在主main.cpp中工作? – Sinmson 2014-11-05 17:33:01

+0

@Sinmson我不明白你在問什麼。 – Barry 2014-11-05 17:36:26

+0

在我嘗試在函數中使用它之前,我在我的主類中使用了它,並且在沒有編譯問題的情況下工作。 – Sinmson 2014-11-05 17:37:13

0

你的陣列kmph是一個數組,你想在同一時間讀取每個字符:

for (int i = 0; i < 4; i++) 
{ 
    cin >> kmph[i]; 
} 
相關問題