Toon posts:

[C] char kleur; scanf("%c", kleur); printf("%c", kleur);grrr

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is de source van een simpele .C file....maar wanneer ik de user input van char haarkleur; wil intypen gaat er iets fout....of ik kan maar 1 character intypen of ik kan helemaal nix intypen...
Ik snap er ff helemaal nix van...
Kan iemand me ff uitleggen wat hier fout aan is...want de debugger geeft 0 errors en 0 warnings.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

main ()

{
    //Dit is gewoon een C programmering oefening voor mezelf

    int leeftijd, lengte;
    char haarkleur;


    printf ("Uhm...tsjah enter hier maar wat values. \n");
    printf ("\n");
    printf ("Wat is je leeftijd?:");    
    scanf ("%d", &leeftijd);
    printf("wat is je lengte?:");
    scanf("%d", &lengte);
    printf("Wat is je haarkleur?:");
    scanf("%c", &haarkleur);
    printf("Je leeftijd is %d, Je lengte is %d en je haarkleur is %c ", leeftijd, lengte, haarkleur);

    return 0;

}

[ Voor 17% gewijzigd door Verwijderd op 01-12-2002 22:56 ]


  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Een compiler (en niet de debugger) geef 0 errors of warnings omdat hij niet weet wat jij precies wil bereiken, maar je C code technisch helemaal correct is.

Echter, jij wil dat de gebruiker een hele string (afgesloten door een enter) kan opgeven terwijl je tegen je compiler verteld dat één karakter (%c) al genoeg is. Probeer het eens met %s

sorry, wilde gok..

|_____vakje______|


Verwijderd

Topicstarter
Ik neem aan dat ik dan moet doen:

string haarkleur;

scanf("%s", &haarkleur);

of

sscanf("%s", &haarkleur);

[ Voor 29% gewijzigd door Verwijderd op 01-12-2002 22:53 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

wat jij moet doen is even de documentatie over scanf erbij pakken
met %s lees je een string in. Haarkleur is echter een char. Een string in C is een array van chars, dus je zult haarkleur een array van chars moeten maken

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Hier staat:
s read a sequence of characters, stop reading when
an enter key or whitespace character [tab or space]
Dus.. Ja? tenzij je "donker blond" ook wilt inlezen..

Alternatieve optie:
lees in een loop karakter voor karakter in (in een string, array van characters) totdat het ingelezen karakter een enter is.

[ Voor 4% gewijzigd door CyberSnooP op 01-12-2002 22:59 . Reden: rml (x2) ]

|_____vakje______|


Verwijderd

Topicstarter
Ik heb het...nu werkt het goed....ik heb idd een array aan characters moeten maken en dan input vragen via %s.
Thanks people.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

main ()

{
    //Dit is gewoon een C programmering oefening voor mezelf

    int leeftijd, lengte;
    char haarkleur[10];


    printf ("Uhm...tsjah enter hier maar wat values. \n");
    printf ("\n");
    printf ("Wat is je leeftijd?:");    
    scanf ("%d", &leeftijd);
    printf("wat is je lengte?:");
    scanf("%d", &lengte);
    printf("Wat is je haarkleur?:");
    scanf("%s", &haarkleur);
    printf("Je leeftijd is %d, Je lengte is %d en je haarkleur is %s ", leeftijd, lengte, haarkleur);

    return 0;

}

Verwijderd

Topicstarter
Nog 1 vraagje...

waar staat die 4 in %4d voor?...laatst zag ik ook al in een stuk code %6.2f staan...wat houdt dat getal tussen % en d of f in?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

int main()
{
    int a;
    a = 0;
    while (a <= 100)
    {
        printf("%4d degrees F = %4d degrees C\n",
            a, (a - 32) * 5 / 9);
        a = a + 10;
    }
    return 0;
}

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

.oisyn schreef op 01 december 2002 @ 22:55:
wat jij moet doen is even de documentatie over scanf erbij pakken


echt, daar staat het allemaal in

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Ok ik heb het opgezocht....het geeft het aantal digits aan in welke een integer of float mag worden weergegeven voor de komma en achter de komma.

Ik ben bezig met een tutorial, daar leggen ze dit soort details niet uit, dus soms best lastig.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

In de MSDN library staat alles, zoals de complete printf en scanf Format Specification Fields.

[ Voor 2% gewijzigd door curry684 op 02-12-2002 00:31 . Reden: oeps ]

Professionele website nodig?

Pagina: 1