Προς το περιεχόμενο

Εφαρμογή C++ πρόβλημα


lamoyo13

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα!!!Έχω πρόβλημα με μία άσκηση με C++.Ένω σχετικα φαίνεται εύκολη δεν ξέρω γτ αλλα δεν μου τρέχει το πρόγραμμα.Θέμα:Να γράψεται ένα πρόγραμμα που θα διαβάζει ενα όνομα.Στην συνέχεια αν το όνομα αυτο είναι patty να εμφανίζει το μύνημα hello patty αλλίως θα εμφανίζει το μύνημα who are you? Η απάντηση μου:

 

#include <stdio.h>

void main()

{

char name[6];

printf("dwse ena onoma:\n");

scanf("%c",&name);

if (name=="patty")

printf("hello patty\n");

else

printf("who are you\n");

} ΤΙ ΈΧΩ ΛΑΘΟΣ ΡΕ ΠΑΙΔΙΑ:S?Help κάποιος

Δημοσ.

Δεν βλέπω κάποιο λάθος. Ίσως αν μας πεις τι ακριβώς σου εμφανίζει και δεν τρέχει, να μπορέσουμε να σε βοηθλησουμε. Δεν κάνει compile??

Δημοσ.

Όπως είπε ο bilco, να συγκρίνεις δύο char*/char[] με αυτόν τον τρόπο είναι λάθος. Επίσης, το %c συμβολίζει ένα μόνο χαρακτήρα, ενώ εσύ θες να συγκρίνεις δύο string. Παρακάτω ο διορθωμένος κώδικας:

 

>#include <stdio.h>
void main()
{
char name[6];
printf("dwse ena onoma:\n");
scanf("%s",&name);
if (!strcmp(name,"patty"))
printf("hello patty\n");
else
printf("who are you\n");
}

Καλό θα ήταν και να αυξήσεις το μέγεθος του name ή να κάνεις κάποιον έλεγχο όσον αφορά το μήκος του ονόματος που θα δώσει ο χρήστης (π.χ. scanf("%5s",&name); ή fgets(name,6,stdin); αντί για scanf("%s",&name);).

Δημοσ.

δεν μπορεις να συγκρινεις συμβολοσειρες με "=="

χρειαζεσε την συναρτηση που βρισκετε στην βιβλιοθηκη <string.h>

οπως εγραψε και το παιδι πανω.

Δημοσ.

Αφού μιλας για C++ τότε δοκίμασε τα παρακατώ:

 

>
//---------------------------------------------------------------------------
#include <iostream>
#include <string>
#ifdef __BORLANDC__
#pragma hdrstop
#endif

//---------------------------------------------------------------------------

#ifdef __BORLANDC__
#pragma argsused
#endif
int main(int argc, char* argv[])
{
std::string	strName;

std::cout<<"Please enter a name:";
std::cin>>strName;

if(strName=="patty")
	std::cout<<"Hello "<<strName<<std::endl;
else
	std::cout<<"Who are you?"<<std::endl;

return 0;
}
//---------------------------------------------------------------------------

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...