onko syntaksi oikein?
onko syntaksi järkevä?
if( (strcmp(haettava_etunimi,taulu[index].etunimi) ) && (strcmp(haettava_sukunimi,taulu[index].sukunimi))==0)
ei herjaa mutta ei ehkä toimi niinkuin ajattelin,
kun ei löydy tietuetaulukosta haettava_etunimi:stä etunimeä eikä haettava_sukunimi:stä sukunime vaikka tietuetaulukon tulostamalla siellä sellaiset on.
onko syntaksi oikein?
9
733
Vastaukset
- sain toimimaan JA JATKOKYSYMYS
hajotin tuon ja sain toimimaan
while(index- if-else
Jos tarkoitat tuhoamisella nollaamista niin:
Jos et tallenna taulukkoa tiedostoon raakana (eli ei tyhjiä merkkejä), niin silloin riittää varmaan:
taulu[index].etunimi[0] = 0;
taulu[index].sukunimi[0] = 0;
Jos tallennat tietueen raakana (eli tyhjät merkit myös), niin silloin kenttien täydellinen nollaus on paikallaan:
memset(taulu[index].etunimi, 0, sizeof(taulu[index].etunimi));
memset(taulu[index].sukunimi, 0, sizeof(taulu[index].sukunimi));
Tai koko indeksin voi nollata kerralla:
memset(&taulu[index], 0, sizeof(taulu[index]));
- if-else
Vaan:
if (!strcmp(haettava_etunimi,taulu[index].etunimi && !strcmp(haettava_sukunimi,taulu[index].sukunimi)
tai
if ((strcmp(haettava_etunimi,taulu[index].etunimi == 0) && (strcmp(haettava_sukunimi,taulu[index].sukunimi == 0))
tai
if (!(strcmp(haettava_etunimi,taulu[index].etunimi || strcmp(haettava_sukunimi,taulu[index].sukunimi))
tai
if ((strcmp(haettava_etunimi,taulu[index].etunimi || strcmp(haettava_sukunimi,taulu[index].sukunimi) == 0)
tai
yms...
Voit ajatella kirjoittamaasi ehtolauseketta testaamalla kaikki tapaukset, eli:
((0 && 0) == 0) => (0 == 0) => tosi (OK)
((0 && 1) == 0) => (0 == 0) => tosi (Tässä väärin)
((1 && 0) == 0) => (0 == 0) => tosi (Tässä väärin)
((1 && 1) == 0) => (1 == 0) => epätosi (OK)
Eli kun kumpikin strcmp palauttaa 0:n niin vain silloin ehto lauseen pitäisi olla tosi. On kuitenkin pakko tunnustaa etten edes tiedä missä järjestyksessä C suorittaa tuon koodisi, eli kuuloko "== 0" jäkinmäiseen strcmp lauseeseen vai suorittaako C eka "&&" -operataation ja kohdistaa sen tulokseen kyseisen "== 0" lauseen.- kokeiltu on
Eipä kelpaa tällainen. Kokeilin tuossa itsekin tuota.
if( (strcmp(haettava_etunimi,taulu[index].etunimi==0) && (strcmp(haettava_sukunimi,taulu[index].sukunimi==0) )
Viope- ympäristön harjoituksia. - if-else
kokeiltu on kirjoitti:
Eipä kelpaa tällainen. Kokeilin tuossa itsekin tuota.
if( (strcmp(haettava_etunimi,taulu[index].etunimi==0) && (strcmp(haettava_sukunimi,taulu[index].sukunimi==0) )
Viope- ympäristön harjoituksia.En testannut mitenkään, eli piti mennä:
if ((strcmp(haettava_etunimi,taulu[index].etunimi) == 0) && (strcmp(haettava_sukunimi,taulu[index].sukunimi) == 0)) - if-else
kokeiltu on kirjoitti:
Eipä kelpaa tällainen. Kokeilin tuossa itsekin tuota.
if( (strcmp(haettava_etunimi,taulu[index].etunimi==0) && (strcmp(haettava_sukunimi,taulu[index].sukunimi==0) )
Viope- ympäristön harjoituksia.Eli niiden kahden muun oikea muoto on:
if (!(strcmp(haettava_etunimi,taulu[index].etunimi) || strcmp(haettava_sukunimi,taulu[index].sukunimi)))
tai
if ((strcmp(haettava_etunimi,taulu[index].etunimi) || strcmp(haettava_sukunimi,taulu[index].sukunimi)) == 0) - if-else
kokeiltu on kirjoitti:
Eipä kelpaa tällainen. Kokeilin tuossa itsekin tuota.
if( (strcmp(haettava_etunimi,taulu[index].etunimi==0) && (strcmp(haettava_sukunimi,taulu[index].sukunimi==0) )
Viope- ympäristön harjoituksia.Eli siinä ensinmäisessä oli myös samanlainen suljevirhe, eli pitäisi olla:
if (!strcmp(haettava_etunimi,taulu[index].etunimi) && !strcmp(haettava_sukunimi,taulu[index].sukunimi))
Kääntäjä kuitenkin herjaa noista virheistä... - ainakin omalla kohdalla
if-else kirjoitti:
Eli siinä ensinmäisessä oli myös samanlainen suljevirhe, eli pitäisi olla:
if (!strcmp(haettava_etunimi,taulu[index].etunimi) && !strcmp(haettava_sukunimi,taulu[index].sukunimi))
Kääntäjä kuitenkin herjaa noista virheistä...vähän alkaisi näyttämään ainakin omalla kohdalla ettei kannattaisi ihan kovin myöhään näitä "harrastella". Tuohan on ihan selvä homma kun vähän ajattelee. Aamu 8 aikoihin aloittelin näitä ohjelmoinnin hommia tekemään ja voisin vaikka väittää että pää ja silmät on "vähän" kipeät.
ps. en ole juonut yhtään limpparia enkä syönyt pizzaa //hilpeä kevennys
- neuvojille
kiitoksia neuvojille.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225164- 254348
- 272461
- 342244
- 371998
- 151918
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191587- 121521
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211247Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101174