Macro's

  • Onderwerp starter Onderwerp starter Tryba
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Tryba

Nieuwe gebruiker
Lid geworden
25 sep 2008
Berichten
3
Hoi,

Ik ben net begonnen met programmeren in C. Nu heb ik letterlijk een klein stukje code uit een boek over getypt. De bedoeling is dat je met getchar() en putchar() werkt alleen krijg ik als output niet de ingetypte karakters terug op mijn scherm. In plaats daar van staat er een " teken.
Kan iemand mij uitleggen wat ik fout doe?
Alvast bedankt!

Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MAXSTRING   100


main(){
    int i, som = 0;
    char c, naam[MAXSTRING];

    printf("\nHallo, Wat is je naam?\n");
    for( i = 0; (c = getchar()) != '\n'; ++i);{
        naam[i] = c;
        if (isalpha(c));
        som += c;
                                              }
    naam[i] = '\0';
    printf("\n%s%s%s\n%s",
            "Hallo, ", naam,".",
            "Achterstevoren gespeld luidt uw naam, ");
    for (--i; i >= 0; --i)
        putchar(naam[i]);
    printf("\n%s%d%s\n\n%s\n",
            "en de letters in uw naam leveren als som op:", som,".", "Goedendag!");
}
 
Hoi,

Ik ben net begonnen met programmeren in C. Nu heb ik letterlijk een klein stukje code uit een boek over getypt. De bedoeling is dat je met getchar() en putchar() werkt alleen krijg ik als output niet de ingetypte karakters terug op mijn scherm. In plaats daar van staat er een " teken.
Kan iemand mij uitleggen wat ik fout doe?
Alvast bedankt!

Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MAXSTRING   100


main(){
    int i, som = 0;
    char c, naam[MAXSTRING];

    printf("\nHallo, Wat is je naam?\n");
    for( i = 0; (c = getchar()) != '\n'; ++i);{
        naam[i] = c;
        if (isalpha(c));
        som += c;
                                              }
    naam[i] = '\0';
    printf("\n%s%s%s\n%s",
            "Hallo, ", naam,".",
            "Achterstevoren gespeld luidt uw naam, ");
    for (--i; i >= 0; --i)
        putchar(naam[i]);
    printf("\n%s%d%s\n\n%s\n",
            "en de letters in uw naam leveren als som op:", som,".", "Goedendag!");
}

In je for loop zet je c = getchar ook tussen haakjes.
het moet eigenlijk zo:
for ( i = 0; c = getchar() != '\n'; ++i)
In jouw code eindig je ook de for statement met een ;
dit moet niet.

dus het komt er eigenlijk ongeveer zo uittezien:
Code:
main(){
    int i, som = 0;
    char c, naam[MAXSTRING];

    printf("\nHallo, Wat is je naam?\n");
    for( i = 0; c = getchar() != '\n'; ++i)
{
        naam[i] = c;
        if (isalpha(c))
        som += c;
                                              }
    naam[i] = '\0';
    printf("\n%s%s%s\n%s",
            "Hallo, ", naam,".",
            "Achterstevoren gespeld luidt uw naam, ");
    for (--i; i >= 0; --i)
        putchar(naam[i]);
    printf("\n%s%d%s\n\n%s\n",
            "en de letters in uw naam leveren als som op:", som,".", "Goedendag!");
}
 
Laatst bewerkt:
Heel erg bedankt! Ik zie dat wanneer ik de ; weg haal, wel een juiste output krijg. Nog over de haakjes rondom getchar(). Volgens mijn studie boek kan het beide maar is zonder haakjes niet gewenst. Iedereen zal het wel weer anders doen... In ieder geval moet ik preciezer worden. Dat scheelt een hoop geploeter.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan