funktiota

Ninni_

Mun harkkatyö on kohta tehty ja häivyn täältä kyselemästä tyhmiä, yhden jos vielä kestätte.

Olisiko olemassa gets-funktiota vastaava funktio, joka lukisi käyttäjän syöttämän rivin suoraan tiedostoon? *turha toivo?*

(Onhan siis niin, että gets ei välitä, vaikka luettu rivi olisi pitempi kuin muistitila, johon sen arvon yrittää tunkea, vaan pahassa tapauksessa se jatkaa tallettamista sujuvasti taulukon ylikin?)

4

669

    Vastaukset 4

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • #include

      fputs - int fputs(const char *s, FILE *stream);

      fputs() writes the string s to stream, without its trailing '\0'.

      • Ninni_

        Tarkotin sellasta, joka lukis stdinistä suoraan tiedostoon... kun haluisin välttää sen, että mun char[]-muuttuja loppuu kesken jos käytän getsiä.

        :/


      • hjelppi
        Ninni_ kirjoitti:

        Tarkotin sellasta, joka lukis stdinistä suoraan tiedostoon... kun haluisin välttää sen, että mun char[]-muuttuja loppuu kesken jos käytän getsiä.

        :/

        ###################################

        libc:tä käyttäen


        #include
        #include

        #define BUFSIZE 8192

        int main(int argc, char *argv[])
        {
        char buf[BUFSIZE];
        FILE *fd;

        fd = fopen("file2.txt", "w ");

        while ( fgets(buf, BUFSIZE, stdin) != NULL) {
        fputs(buf, fd);
        }

        exit(0);
        }

        ####################Alustana linukka:

        #include
        #include
        #include
        #include
        #include
        #include

        #define BUFSIZE 8192

        int main(int argc, char *argv[])
        {
        int fd_out, n;
        char buf[BUFSIZE];

        fd_out = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IRGRP | S_IROTH);

        while ( (n = read(STDIN_FILENO, buf, BUFSIZE)) != 0) {
        write(fd_out, buf, n);
        }

        exit(0);
        }


        Tapa kaksi:


      • Ninni_
        hjelppi kirjoitti:

        ###################################

        libc:tä käyttäen


        #include
        #include

        #define BUFSIZE 8192

        int main(int argc, char *argv[])
        {
        char buf[BUFSIZE];
        FILE *fd;

        fd = fopen("file2.txt", "w ");

        while ( fgets(buf, BUFSIZE, stdin) != NULL) {
        fputs(buf, fd);
        }

        exit(0);
        }

        ####################Alustana linukka:

        #include
        #include
        #include
        #include
        #include
        #include

        #define BUFSIZE 8192

        int main(int argc, char *argv[])
        {
        int fd_out, n;
        char buf[BUFSIZE];

        fd_out = open("file.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IRGRP | S_IROTH);

        while ( (n = read(STDIN_FILENO, buf, BUFSIZE)) != 0) {
        write(fd_out, buf, n);
        }

        exit(0);
        }


        Tapa kaksi:

        Voi kiitos. Eiköhän noilla. :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mikä on suurin syy

      Ettet halunnut minua?
      Ikävä
      156
      1152
    2. Poliisin potkija

      Kukahan oman elämänsä sankari oli potkaissut poliisia? Iltalehdessä oli juttua.
      Haapavesi
      29
      1083
    3. Sinä mies olisit

      ollut se kenet haluan. Edelleen pidän sinua kaikkein ihanimpana ja tärkeimpänä. Kukaan muu ei ole niinkuin sinä. Mutta s
      Ikävä
      44
      933
    4. Mikä on ollut

      Ihanin kohtaamisemme?
      Ikävä
      42
      795
    5. Miksi jätit minut

      Epätietoisuuteen? Tiedän että pelkäsit mitä siitä seuraa jos asiat tulevat mutta silti. Miksen merkinnyt tarpeeksi?
      Ikävä
      49
      747
    6. Onko kaivattusi älykäs

      vai onko helposti vedätettävissä
      Ikävä
      62
      728
    7. Kun et ota yhteyttä, tarkoittaako se

      Että olet menny elämässä eteenpäin ja et myös toivo minulta naiselta viestiä enää?
      Ikävä
      71
      634
    8. kehtaisitko esitellä kaivattusi

      läheisillesi? 🤔
      Ikävä
      37
      609
    9. Miten yksi ihminen

      Voi kolahtaa näin kovaa? Saada ajatukset vallattua näin totaalisesti? Taidan oikeasti tarvita ammattiapua tämän kanssa,
      Ikävä
      37
      606
    10. Kaipaatko vielä exää?

      Jos olet ihan rehellinen
      Ikävä
      76
      597
    Aihe