2014-11-05 57 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]; 
} 
相关问题