Newsgroup: it.comp.lang.c
Titolo: Getline

Devo leggere stringhe da stdi, ho usato gtes, gcc si imbufalisce e dice che 
non va usata questa funzione. Mi documento, capisco che devo usare getline 
e trovo questo riferimento:
char* username = getline(NULL, 0, stdin)
NON capisco come usare sta benedetta getline. Mi potete aiutare ?
grazie mille
ciao

 NON capisco come usare sta benedetta getline. Mi potete aiutare ?
getline è del c++ e non dell'ansi c
prova sul newsgroup del c++
In C usa fgets
Ciao Max
-- 
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

 In C usa fgets
No. getline e' anche un' estensione GNU utilizzabile per  sostituire 
gets che e' una sorgente di problemi.
Il primo argomento di getline e' un puntatore che, se NULL, comunica a 
getline di allocare memoria a cui si puo' far riferimento in uscita 
dalla function attraverso lo stesso puntatore.
Riporto qui sotto  l' esempio di utilizzo tratto dalle man pages.
Giorgio Pastore
        #define _GNU_SOURCE
        #include <stdio.h>
        #include <stdlib.h>
        int main(void)
        {
             FILE * fp;
             char * line = NULL;
             size_t len = 0;
             ssize_t read;
             fp = fopen("/etc/motd", "r");
             if (fp == NULL)
                  exit(EXIT_FAILURE);
             while ((read = getline(&line, &len, fp)) != -1) {
                  printf("Retrieved line of length %zu :\n", read);
                  printf("%s", line);
             }
             if (line)
                  free(line);
             return EXIT_SUCCESS;
        }

 gets che e' una sorgente di problemi.
Se è una estensione daccordo, perchè io nell'ansi C non l'ho mai vista


Giorgio Pastore wrote:

=====================================================
Grazie mille delle indicazioni veramente utili. Due domande ancora:
1) come fai ad usare getline da stdin ?
2) Ma come trovi le man pages delle funzioni ? Da tempo pensvo che 
esistessero, ma non so come richiamarle, ho provato vari man, esempio man 
stdio, man stdio,h, e via cosi, ma niente. Tu come fai ?
grazie mille
ciao
angelo

<inviati & spediti>


 stdio, man stdio,h, e via cosi, ma niente. Tu come fai ?
Dipende da che sistema usi. Su UNIX & Co. in genere (ovvero se le man 
pages sono state istallate) basta dare man nome comando (o funzione).
E per gli headers 
p.es
. man stdio
Tuttavia se non sono state installate le pagine (
p.es
. se hai compilato 
tu gcc l' installazione della man pages va fatta esplicitamente)  o se 
sei su una macchina non UNIX :-(  devi far riferimento alla doc del gcc 
sul sistema che usi.
Giorgio

Giorgio Pastore wrote:

=====================================
Grazie mille Giorgio, le tue indicazioni sono state preziosisime, mi sono 
tolto dal problema ed ho imparato e capito diverse cose, non solo getline.
Spero di poter ricambiare
ciao
Angelo