Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[C]Kan niet schrijven in bestand

None
5 antwoorden
  • Hallo,

    een beginnersvraag :

    Ik ben sinds een paar dagen met C aan het programmeren en nu stoot ik op een probleem :
    Ik heb een klein programmatje geschreven voor een txt-bestand aan te maken, dit is de code :
    [code:1:c9015e7e74]
    #include <stdio.h>

    int main()
    {
    FILE *pnf;
    char *str;
    pnf=fopen("test.txt","w");
    printf("tik een string in
    ");
    scanf("%s",&str);
    fprintf(pnf,"%s",str);
    fclose(pnf);
    return 0;
    }
    [/code:1:c9015e7e74]
    Maar als het progje runt en typ een string in en druk op enter dan wordt er wel een bestand "Test.txt" aangemaakt maar dat bestand is leeg.

    Weet iemand waar dat aan ligt?

    Alvast bedankt!
    Wim.
  • Hij doet het om 2 redenen niet.
    Een char kan maar 1 letter bevatten, je kan een array maken door bijvoorbeeld char *str[100] te maken.
    En verder moet je bij de fprintf het adres meegeven, door fprintf(pnf,"%s",&str);

    ps. scanf pakt alleen het eerste woord

    [code:1:da8ccfd56c]
    #include <stdio.h>

    int main()
    {
    FILE *pnf;
    char *str[100];
    pnf=fopen("test.txt","w");
    printf("tik een string in
    ");
    scanf("%s",&str);
    fprintf(pnf,"%s",&str);
    fclose(pnf);
    return 0;
    }
    [/code:1:da8ccfd56c]

    Suc6
    Groeten Josteman
  • Jammer, het werkt nog niet. Ik krijg steeds devolgende foutmelding :
    [code:1:f2a25a1dfa]
    c:\program files\miracle c\include\H2oef3.c: line 9: & non lvalue
    'scanf("%s",&str)'
    aborting compile
    [/code:1:f2a25a1dfa]
    weet iemand waar dit aan ligt?

    Groetjes,
    Wim.
  • Bijna goed.

    char *str[100] is een array van 100 pointers naar char en niet een array van 100 chars.

    [code:1:1b31fb7b8c]#include <stdio.h>

    int main()
    {
    FILE *pnf;
    char str[100];

    pnf=fopen("test.txt","w");
    printf("tik een string in
    ");
    scanf("%s",str);
    fprintf(pnf,"%s",str);
    fclose(pnf);
    return 0;
    }[/code:1:1b31fb7b8c]
  • Ja! Nu werkt het!

    Bedankt allemaal voor de reacties, ik ga meteen nog wat verder programmeren!

    Greetz,
    Wim.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.