2016-04-07 12 views
-6

So here mein für SchleifenSeg Fehler in for-Schleife?

string inputName; 
int inputNumServices; 
string inputServices[20]; 
do 
{ 
    cin >> inputName; 
    if(inputName != "$") 
    { 
    cin >> inputNumServices; 
    for(int i = 0; i < inputNumServices; i++) 
    { 
     cin >> inputServices[i]; 
    } 
    cout << "success"; 
    } 
} 

Und es ist mir einen seg Fehler geben, nachdem für Schleife in allen Eingängen in der Umsetzung. Ich weiß, weil es nicht „Erfolg“ kann nicht gedruckt werden, bevor der seg Fehler

+1

Wie deklarieren Sie 'inputServices'? – songyuanyao

+0

nur aktualisiert es tut mir leid –

+1

Definieren Sie "alle Eingänge". Was ist die Nummer, die Sie eingeben, wenn Sie dieses Programm ausführen? –

Antwort

0

Als ich diese setzen in test.cc

#include <iostream> 
using namespace std; 
int main() { 
    string inputName; 
    int inputNumServices; 
    string inputServices[20]; 
    // I removed the "do" here, as commented by Nicky C 
    { 
    cin >> inputName; 
    if(inputName != "$") 
    { 
     cin >> inputNumServices; 

     for(int i = 0; i < inputNumServices; i++) 
     { 
     cin >> inputServices[i]; 
     } 
     cout << "success"; 
    } 
    } 

    return 0; 
} 

und kompilieren mit g++ test.cc -o test -Wall -Wextra ich test ohne Probleme ausführen kann. (Anders als ich sehe die fehlende endl, wie von Kevin hingewiesen.)

Mit mehr als 20 Eingänge, es segfaults (wie bereits erwähnt, weil das Array nur 20 Elemente hat).

Verwandte Themen