2010-11-19 3 views
-1

Bonjour, J'écris ce programme mais je n'arrive même pas à voir si l'autre code a des problèmes.Le programme s'arrête après cin

J'ai ceci:

int main() 
{ 
    int answer; 
    int test; 
    cout << "Please Enter the number to be tested: "; 
    cin >> test; //Gets number to be tested 
     cout << "here"; 
    answer = factor(test); 
    cout << "The answer is:" << answer; 
    return 0; 
} 

maintenant alors. Il imprime le premier cout, puis il arrive à la cin, prend le numéro mais ne fera rien. N'imprimera même pas le deuxième cout. Des idées?

I "m assez nouveau et n'ont pas vraiment fait si bien tout supplémentaire de me traiter comme une idiote explications sont accueillies avec satisfaction:.. D Merci

+0

Vous ne devriez pas marquer cela comme C. – onemasse

+0

C'est C++ pas C. Je l'ai retagged. – Flinsch

+1

Que signifie "prend le nombre"? Avez-vous une réponse? Avez-vous appuyé sur Retour ou Entrée pour confirmer l'entrée? – Flinsch

Répondre

3

peut-être il y a quelque chose qui ne va pas avec la fa fonction ctor? Une boucle infinie? Puis cout < < "ici" < < endl; (pour vider la sortie) devrait au moins imprimer "ici".

+0

Oui, ça l'a, je suis sûr qu'il y a un problème avec le reste des fonctions que j'utilisais la ligne ici comme test pour voir où mon programme a commencé à avoir des problèmes. Maintenant, il est temps d'aller réparer le reste, car il va au moins passer la partie entrée maintenant! – samuraiseoul

1

Je suppose que << endl; manque dans vos cout lignes qui provoque la sortie. TAMPOONS ne pas être rincée et rien apparaître sur l'écran. Bien que cela puisse dépendre de la plate-forme que vous exécutez sur. il pourrait travailler sur certains systèmes qui vider la mémoire tampon de sortie de façon permanente.

int main() 
{ 
int answer; 
int test; 
cout << "Please Enter the number to be tested: "; 
cin >> test; //Gets number to be tested 
    cout << "here" << endl; 
answer = factor(test); 
cout << "The answer is:" << answer << endl; 
return 0; 
} 
+0

En fait, le facteur() bloque. Flushing le premier cout ne lui donnerait la sortie "ici" mais le programme ne répondra toujours pas – Milan

0

On dirait que le programme attend l'entrée au terminal. Une fois que vous fournissez l'entrée et appuyez sur "Entrée", il considérera automatiquement l'entrée et l'instruction cout suivante fonctionne bien ... Vérifiez le segment de code ci-dessous ... (rien de modifié sauf l'implémentation factice pour factor, qui n'est pas le sujet de discussion ici)

enter code here 

comprennent

using namespace std;

facteur int (int t) { return t; }

int main() 

{ réponse int; test int; cout < < "Veuillez entrer le numéro à tester:"; cin >> test; // Obtient le nombre à tester cout < < "ici"; réponse = facteur (test); "La réponse est:" < < réponse; return 0; }

O/p est: $ ./a.out S'il vous plaît Entrez le numéro à tester: 1234 iciLe réponse est: 1234user @ ubuntu: ~ $ ./a.out S'il vous plaît Entrez le numéro être testé: 1234 iciLa réponse est: 1234 $

0

J'ai eu les mêmes résultats quand je frappais entrer sur le clavier juste après ma saisie. Si je frappe retour alors le programme fonctionne bien. Je pensais entrer et revenir sont la même chose?

-1
This is how it work "here " your screen doesnot be static by putting system("pause") you can do it ,on the other hand i have just made the function defination dummi still happen anything check there] 


#include<iostream> 
using namespace std; 
int factor(int x) 
{ 
    return x; 
} 
int main() 
{ 
    int answer; 
    int test; 
    cout << "Please Enter the number to be tested: "; 
    cin >> test; //Gets number to be tested 
    cout << "here"; 
    answer = factor(test); 
    cout << "The answer is:" << answer; 

    **system("pause");** 


} 
+0

quel est le problème que je suis manquant ??? son fonctionnement correct et son selon le problème. . . – Malik

Questions connexes