C character

babadinding

Cadet 2nd Year
Registriert
Apr. 2015
Beiträge
16
hello kann jemanden mir erklären warum bekomme ich solche ausgabe obwohl ich keine vergleich zwischen pointer und interger gemacht habe.
was ist hier Falsch in disem Program

warning: comparison between pointer and integer [enabled by default]
if(eingabe =='Y' || eingabe =='y'){
^
displayofword.c:34:32: warning: comparison between pointer and integer [enabled by default]
if(eingabe =='Y' || eingabe =='y'){


#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){

int i, x, length, bytes;

char *eingabe;

char word[]= " hello world ";

length=strlen(word);
bytes=sizeof(word);

printf("die eingegebene wort: %s\n", word);

printf("das wort große : %d\n", length);

printf("anzahl der byte : %d\n", bytes);

for(i=1;i<=20; i++){

printf("%d\n", i);

if(i==20){

printf("%s\n", word);
}
printf("wollen sie nochmal den Ausgabe auf den Bilschrim sehen Y/N ?");

scanf("%c",eingabe);

if(eingabe =='Y' || eingabe =='y'){

printf("%s\n", word);
}
else{
printf("\n");
}


}

return 0;
}
 
Pack mal den Code in
HTML:
[CODE][/CODE]
Klammern
 
warum bekomme ich solche ausgabe obwohl ich keine vergleich zwischen pointer und interger gemacht habe.
Weil eingabe ein Pointer ist, und du also Pointer und Integer vergleichst. Das sagt dir dein Compiler übrigens auch, sogar mit Codefragment...
warning: comparison between pointer and integer [enabled by default]
 
char* eingabe;
scanf("%c",eingabe)

funktioniert nicht. scanf legt daten in eingabe ab, aber du hast nur einen pointer.

change to
char eingabe;
scanf("%c", &eingabe)

or do

if(*eingabe =='Y' || *eingabe =='y'){
 
Zuletzt bearbeitet:
vielen Dank es hat geklappt
Ergänzung ()

ich danke dir für den Tipp, habe gesehen wo der Fehler liegt
 
Zurück
Oben