mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Domande

Ecco qualche altro stupido quesito:
1) con lo specificatore extern vanno dichiarate anche le funzioni contenute
in file oggetto ma dichiarate altrove? o queste vanno dichiarate nello
stesso file oggetto in cui sono presenti? vanno dichiarate? (l'esempio di
Shildth non mi sembra un granché, non è che potreste fare in piccolo esempio
con due file oggetto linkati, contenenti variabili e funzioni che
restituiscono valori, ma anche void?)
2) come si fa a sapere in anticipo le risorse utilizzate (a parte la RAM),
tipo uso del processore, processore e clock minimi, etc...?
3) se in un programma dichiaro una funzione con due variabili register e
queste non vengono ignorate, non potrebbe capitare che a runtime il registro
si già occupato da qualche altro programma o qualcos'altro? com'è che
funzionano esattamente le var register?
4) delle var register non si può sapere l'indirizzo. Ma questo vare solo per
char e int, che vengono effettivamente memorizzate nei registri del
processore, o anche per tutti gli altri tipi? e se viene ignorato lo
specificatore register, si può sapere l'indirizzo?
5) in effetti, il registro del processore è la memoria cache? Ma è quella
interna, di primo livello, o quella di secondo?
Grazie,
--
Marco Iannaccone
ICQ: 18748121
IRC: Tolkien
e-mail: 
captai...@ussvoyager.com

interna, di primo livello, o quella di secondo?
No assolutamente.
Ne' l'una, ne' l'altra.
I registri fanno parte dell'architettura interna del processore
stesso.
 

Questo consente di evitare i conflitti di cui parli.
Ma se il compilatore lo seguisse, ma il file eseguibile, in fase di
esecuzione non potesse metterle nel registro, o comunque velocizzarle?


esecuzione non potesse metterle nel registro, o comunque velocizzarle?
Attenzione ! : NON e' il file eseguibile che prende decisioni di
questo genere.
E' il compilatore che genera il codice.
Se il compilatore segue il consiglio, stai sicuro che a tempo di
run-time la variabile sara' gia' trattata come registro.
Se, ad esempio, si tratta di trasformare il ciclo seguente :
for (i = 0; i < 10; i++) { ... }
Se i fosse definita come "register" , essa verrebbe trattata
*direttamente dal compilatore* come registro generando il codice
adeguato di conseguenza.
Gli eseguibili non possono prendere decisioni per conto proprio.


ehm, a me sembra che inc() sia stata solo definita. Non avresti dovuto prima
dichiararla con int inc (int *x); prima di definirla? (in pratica come
nell'altro file, ma senza lo specificatore extern)


nell'altro file, ma senza lo specificatore extern)
Avrei anche potuto farlo, ma la definizione comporta una dichiarazione
implicita.
Newsgroup: it.comp.lang.c
Titolo: Testo colorato

Ciao a tutti,
è la prima volta che posto per chiedere un consiglio, e spero che il mio
dubbio venga risolto...
Vorrei sapere se (e come) si cambia il colore del testo in C.
E' possibile farlo tramite le librerie standard o è necessario
qualcos'altro?



includi la <conio.h> (non mi sparate vi prego .-) )
poi usi :
textcolor(NOME_COLORE); per il colore in foreground
textbackground(NOME_COLORE); per quello in background
e per le stampe usi cprintf invece di printf
I nomi dei colori sono 16 e definiti come #define in conio.h (in
pratica sono i num da 0 a 15 se non erro)
ad esempio dsono BLUE RED YELLOW MAGENTA etc.. (scritti in maiuscolo)
Augusto Pucci
Webmaster di Prospektiva On-line
http://www.prospektiva.it

includi la <conio.h> (non mi sparate vi prego .-) )
Con quale compilatore ?
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
#exclude <windows.h>

qualcos'altro?
E' necessario qualcos'altro.
Che compilatore usi ?



DJGPP 2.01

you wrote:

#include <conio.h>
ed utilizzi le funzioni contenute.


 ha scritto nel messaggio
news:g81nks09fooomea57...@4ax.com...


 Con quale compilatore ?
Pittosto quale S.O.
Ad esempio in una applicazione console Win32 le cose sono un filino piů
complicate


Pittosto quale S.O.
Piuttosto con quale S.O. e con quale compilatore per quel S.O.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
--------------------------------------------------------------
"Partire e' un po' morire e morire e' partire un po' troppo !"
--------------------------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: Conversione di sessagesimali

Esiste una istruzione(e se sì di quale libreria) per convertire un 
sessagesimale in un decimale???
Grazie mille in anticipo
-- 
Zarathustra
(18/22 PO 80 B/S; S)
Parkpre, LeeCougan and Eleven munito

 Grazie mille in anticipo
non che io sappia.
Comunque e' una operazione tanto banale che
puoi farla con una funzione o con una define
di una riga:
#define SESS(h,m,s,c) ((h)+(m)/60.0+(s)/3600.0+(c)/360000.0)
oppure
double Sess(int h, int m, int s, double c)
{
   return h+m/60.0+s/3600.0+c/360000.0;
}
dove ovviamente
h = ore (o gradi)
m = minuti
s = secondi
c = centesimi di secondo
ciao,
g.

 di una riga:
Anch'io avevo pensato di farlo in quel modo, ma volevo sapere se c'era 
una funzione già pronta, solo per risparmiare 3 righe di codice
Ciao e grazie!!!


 Ciao e grazie!!!
Ecco, adesso rifletti bene su quello che hai appena detto e saprai
anche perche' non esiste una funzione preconfezionata.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Ciao e grazie!!!
Ecco, adesso rifletti bene su quello che hai appena detto e saprai

Newsgroup: it.comp.lang.c
Titolo: riempimento di un array con 10 numeri

Buon giorno a tutti
Come faccio a riempire un array con dieci numeri introdotti dall'utente da
tastiera? Questo non va, dove sbaglio?
Grazie, Riccardo
#include <stdio.h>
main ()
{
int array[10]; /*definizione array con max 1o elementi*/
int i;              /*contatore*/
for(i=0;  i<10 ; ++i)
array[i] = putchar();
}

}
Non ho compilato :
#include <stdio.h>
int main()
{
    int array[10];
    int i ;
    for ( i = 0 ; i < 10 ; i++ )
    {
        /* leggo il valore */
        scanf( "%d", &array[i] ) ;
        /* svuoto il buffer di tastiera */
        while ( getchar() != '\n' ) ; 
    }
}
Ti consiglio la lettura di un buon manuale di C.


Io lo farei cosi':
int main (void)
{
	int array[10],i;
	for(i=0;i<9;i++) /*l-array va da 0 a 9 */
	{
		scanf("%d",&array[i]);
	}
	return 0;
}
Lo so che forse non e'il metodo piu' elegante,
ma mi sembra il piu'immediato.
Anna
-- 
@**************************@
* Annaclaudia Amadori      *
* Undergraduate Student    *
* of Computer Science      *
* at Bologna's University  *
* Icq UIN:2712635          *
@**************************@

		scanf("%d",&array[i]);
                ^^^^^^^^^^^^^^^^^^^^^^
Mai usare le scanf() se non ci si preoccupa anche di svuotare il
buffer di tastiera.


lo terro' presente.
Grazie della dritta
Anna ;o)


 ha scritto nel messaggio
news:98b14r$5ip$1...@lacerta.tiscalinet.it...


 for(i=0;i<9;i++) /*l-array va da 0 a 9 */
l'array va da 0 a 9 quindi :
i<10
oppure
i<=9
ciao
donCiccio

Newsgroup: it.comp.lang.c
Titolo: Problema complesso

Ciao a tutti, è la prima volta che metto un post su questo NG.
Devo scrivere una shell per un sistema Linux ma non saprei da dove iniziare,
esiste qualche anima pia che abbia voglia di aiutarmi?
Grazie in anticipo
Claudio


Non e' affatto un problema complesso realizzare una piccola shell con un 
minimo di interattivita'.
Poi tutto dipende da cosa vuoi implementare, e' chiaro.
Cmq i passi principali sono questi, grossomodo:
-stampare un prompt
-prendere l'input dall'utente, analizzarlo (in questo caso ti consiglio 
un'occhiata a man strtok) e memorizzarlo.
-cercare il comando nel pathname e quindi costruire il pathname.
-creare un processo figlio che esegua il comando specificato con i suoi 
argomenti (man execv).
-aspettare che il processo termini (man wait) e ritornare il prompt.
Questo e' una schema proprio di base, io non so cosa tu debba 
implementare ancora (background del processo, pipe, redirezione, etc...)
Magari se specifichi meglio il tuo problema posso aiutarti di piu'.
Cmq sul sito del mio prof di sis.op. ci sono delle slide a riguardo (non 
mi ricordo quali).
http://www.fe.infn.it/~didomeni/LabSisOp2003.html
Buon lavoro!
Maldoror.
-- 
"L'Italia sta marcendo in un benessere che e' egoismo, stupidita', 
incultura, pettegolezzo,
moralismo, coazione, conformismo: prestarsi in qualche modo a 
contribuire a questa marcescenza
e', ora, il fascismo."
Pier Paolo Pasolini, 1972

Grazie, vado a dare un'occhiata
Newsgroup: it.comp.lang.c
Titolo: ANNOUNCE: Quick ISO C Reference Manual

Some years ago I've started writing a Reference Manual for the C
programming language.  Unfortunately I've never finished the work, so I
decided to publish the book under the General Public License.  If someone
is interested, it can be found at the address
http://www.sigala.it/sandro/books.html
It is available in Postscript format and LaTeX sources.  If someone would
like to contribute to the book, please contact me via email.
Regards,
	Sandro
-- 
Posted from [212.210.188.50] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Sandro
Due cose non sono chiare:
1) perche' in inglese se posti su due NG italiani
2) perche' posti su it.comp.lang.c++ se si tratta di C.
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Newsgroup: it.comp.lang.c
Titolo: Scrivere su file

Ho fatto un programmino minuscolo che simula una rubrica, ma non so
mettere le informazioni immesse su un file esterno. Come si fa?
Grazie

  Grazie
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

Newsgroup: it.comp.lang.c
Titolo: convenzione __kernel

Salve a tutti,
ho letto una parte di codice di un programma del kernel di linux e volevo 
sapere perche alcune struct, funzioni e variabili hanno due underscore 
davanti al nome cioe':
struct struttura __nomestruttura;
Hanno un significato particolare?
bye bye
-- 
             A(t-t°)
W(t,t°)=e^

 Hanno un significato particolare?
E' una convenzione adottata per evitare conflitti (l'equivalente in C di 
quello che sono i namespace).
Ad esempio tutti i nomi che iniziano per underscore sono riservati per 
(alcune parti de) la libreria standard del C (e le varie estensioni fornite 
dagli sviluppatori, come tutte le varie estensioni Posix e Gnu nelle 
glibc).
Gli identificatori avente come prefisso un doppio underscore sono anch'essi 
riservati, non ero sicuro del loro scopo pero'. A quanto pare e' lo sono 
per il Kernel.
Lo scopo di questo e' evitare che per errore un programmatore possa 
dichiarare identificatori che conflittano con alcuni interni della libreria 
standard (o del kernel).
Non a caso si e' detto piu' volte su questo NG di non usare identificatori 
che iniziano in questo modo proprio per evitare i conflitti.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."
Newsgroup: it.comp.lang.c
Titolo: funzione stringa

salve a tutti   
esiste una funzione per convertire una stringa in un numero?
es.
char *str="17";
int num =17;
-- 
KiloByte
Powered by Debian GNU/linux

 int num =17;
atoi, atof, atol, strtol, strtod, strtoul ...
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 
thx


> ciao ...
ehm scusa 
e una funzione che mi tira fuori dalla stringa il numero binario?
ovvero..
"010" = 2
basta che il numero che mi restituisce sia corrispondente al numero binario
nella stringa...
grazie 


 grazie 


 nella stringa...
Se sai come trasformare a mano da 010(2) a 2(10) allora dovresti riuscirci
anche con il C!
a mano si calcola cosi:
0x2^2 + 1x2^1 + 0x2^0 = 2
e per 110 sarebbe invece:
1x2^2 + 1x2^1 + 0x2^0 =6
fatto questo puoi calcolarlo con un algoritmo che legge un elemento della
strina alla volta.
NB: Attento pero' ai numeri negativi, se vuoi supportarli devi implementare
anche il complemento a due.
Proseguendo con questo algoritmo ed implementandolo puoi calcolare il numero
binario di una stringa. Ad esempio ecco che la stringa:
"001111101010101010101010101010101010101010101010100000000000000000000000000
0000000000000000000000000000000000000000000001100000000000000000000000000000
0000000000000000000000111111110000101010111100010101010000000101000000000111
1110110010100100001000001111111000011111111111111110000101010100100000001110
010111"
equivale al numero binario:
+255308509033921638587835927260933137728342280029790201035690365372244695272
178446676073251735
Ma per ora accontentati di numeri che riesci a fare stare nei tipi primitivi
;-)
Tommy

 equivale al numero binario:
                                ^^^^^
equivale al numero:
Tommy

 
ok ho capito non è difficile
volevo solo risparmiarmi un po' di tempo :D


 te la devi scrivere ... non c'e' nessuna funzione standard ...
ehm...
long p = strtol("10", NULL, 2);
printf("%d", p);
2
:-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C:\>iao Angelo

Newsgroup: it.comp.lang.c
Titolo: Gcc 3.2

Ciao a tutti
ho appena installato la nuova redhat 8 che comprende il gcc 3.2
ho iniziato a fare un programmino stupido..
bene.. l'ho compilato e mi succede una cosa stranissima: SE faccio eseguire 
questo prg da un terminale sotto KDE ha dei problemi (praticamente pare non 
eseguire o eseguire male le ultime righe del programma)..
sotto shell, funziona bene
che diavolo puņ essere ??
grazie
ciao!
-- 
---
Keyboard error or keyboard not found
Press any key to continue

 che diavolo può essere ??
Ho la sfera di cristallo in riparazione, per venirci incontro potresti 
postare la parte incriminata del codice, dicendo cosa fa' in realta' e cosa 
ti aspetti tu :)
A meno che non sia semplicemente questo il problema: le ultime stampe a 
video non vengono visualizzate. In tal caso potrebbe benissimo essere che 
vengono visualizzate, la il terminale viene chiuso immediatamente dopo la 
stampa (soluzione: termina con una getchar() o uno sleep(1)).
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

Ok ok..hai ragione..
ecco il codice...
#include <stdio.h>
        int main()
        {
                int v[3]; //inzializza un array
                int c=0,i=0;
                printf("Riemiamo sto array \n");
                for ( i=0; i<3 ; i++)
                { 
                        scanf("%d",&c);
                printf("\n");
                        v[i]=c;
                }
                i=0;
                printf("array riempito:\n");
                while (i<3)
                {       
                        //c=v[i];
                        printf("%d \n", v[i]);
                        i++;
                }
                printf("fine del for\n");
                printf("funziona??\n");
                printf("sicuro?\n");
                printf("ciao!");
                sleep(1);
 
        }
il fatto è che sotto KDE non lo esegue tutto, mentre da shell, va bene.. e 
questo mi fa incazzare parecchio.. in particolare non arriva al 
printf("ciao")
che diavolo può essere ??'
byez


 che diavolo può essere ??'
Il programma in C e' corretto (con le piccole correzioni suggerite), il 
proglema e' nel meccanismo adottato dal KDE per lanciare applicazioni, 
forse nei meccanismi di redirezione che utilizza (visto che da shell 
funziona perfettamente).
Per ovviare al problema quando lanci l'applicazione seleziona opzioni-> 
"Esegui in un terminale" e funziona tutto perfettamente.
Nota che una volta che l'applicazione termina lui chiude la finestra, quindi 
vedi di terminare sempre il programma con una sleep o con una getchar() su 
buffer di input vuoto.

Newsgroup: it.comp.lang.c
Titolo: Intercettare l' HINSTANCE di una finestra

Programmazione C su Windows XP 32 bit
 
E' possibile intercettare l'HINSTANCE di una qualsiasi finestra di un 
qualsiasi programma aperto su windows  toccato(cliccato) con il mouse?
 
nero23
 


Ti consiglio it.comp.programmare.win32
Li' troverai persone che conosco l' ambiente win32
 

 Li' troverai persone che conosco l' ambiente win32
 
 
Ok, grazie
 


Da (vaghi) ricordi:
 
GetCursorPos per avere la posizione del mouse:
http://tinyurl.com/86ohtt7
 
 
Poi usi il POINT con WindowFromPoint che ti restituisce l'HWND della 
finestra sotto il puntatore:
http://tinyurl.com/d9vcf6p
 
 
Infine con GetWindowLong ottieni l'HINSTANCE associato all'HWND:
http://tinyurl.com/coyqz9l
 
 
Esercizio divertente che ha alla sua base questo giro: check se la 
finestra sotto il mouse ï¿œ di classe "EDIT" e se ï¿œ impostato il flag di 
stile ES_PASSWORD. Se sï¿œ usare GetWindowText per prelevare la password 
ivi contenuta e mostrarla in chiaro... :-)
 
-- 
r--r--r--

Newsgroup: it.comp.lang.c
Titolo: Numero di bit

Salve a tutti!
Ho un numero memorizzato in un int qualsiasi, e volevo sapere quanti 'uni'
sono contenuti in quel numero nel suo formato binario: in pratica il numero
in questione è tipo un eflags e devo sapere quanti 'uni' ci sono per sapere
quanti flag sono settati.
grazie
ciao
-- 
daniele_athome


se il valore x e' un int positivo
oppure un unsigned int,
puoi fare banalmente cosi:
int ContaBit(unsigned int x)
{
int conta=0;
while (x) {conta+=x&1; x>>=1;}
return conta;
}
cioe' ogni volta sommi alla variabile
conta l'ultimo bit di x e poi shifti x.
Quando alla fine x e' uguale a 0 hai finito.
Se x ti serve conservarlo ovviamente
lo memorizzerai in un altra variabile.
Alternativamente, se ti serve una
cosa piu' veloce,
puoi memorizzare prima i valori fino a 256
e poi calcolare il valore byte per byte:
int BitCnt[256];
// inizializzazione:
for (i=0; i<256; i++) BitCnt[i]=ContaBit(i);
// funzione:
inline int ContaBit2(unsigned int x)
{
   unsigned int y=x;
   unsigned char *p= (unsigned char *) (&y);
   int conta=BitCnt[*(p++)];
   conta+=BitCnt[*(p++)];
   conta+=BitCnt[*(p++)];
   return conta+BitCnt[*p];
}
o qualcosa di simile.
Poi c'e' il metodo di Kerningham che e' molto piu' furbo
e simpatico...
Comunque, ora che mi sovviene e' inutile che sto
a scriverteli io. Trovi diversi metodi spiegati a questo
indirizzo:
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive
ciao,
g.

Giovanni Resta wrote:

Grazie mille! :)
ciao
-- 
daniele_athome

Newsgroup: it.comp.lang.c
Titolo: E' possibile avere il sorgente Assembler di un codice in C

Salve a tutti.
Sapete dirmi se esistono dei programmi che convertono il codice da C nel
listato in Assembler?
Grazie.

Brizio wrote:

gcc -S hello.c
genera hello.s
Newsgroup: it.comp.lang.c
Titolo: Splittare una stringa

Ciao,
sto imparando il C da poco. Devo splittare
una stringa:
10153 6579755 196763 
pippo.paperino.net
in modo tale da avere i primi 3 numeri in 3 variabili
e la stringa 
pippo.paperino.net
 in un char. Col perl
faccio così:
($a,$b,$c,$stringa) = split(/ /,'10153 6579755 196763 
crazydiamond.darkservers.net
');
Ma in C ??
Giuseppe

 si avvicino` a me, e solennemente disse: 

strchr
strstr
strsep
strtok
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 strsep
Se non ha volgia di implementarsela lui, meglio evitarla. Finisce che sul
suo sistema non la trova :-)
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

[cut]
se non ricordo male, dovrebbe essere:
char valore1[10],valore2[10],valore3[10],indirizzo[40]; 
	/*mi sono tenuto molto largo*/
int primo,....;
se stringa ="10153 6579755 196763 
pippo.paperino.net
"
ssprintf(stringa,"%s %s %s %s",valore1,valore2,valore3,indirizzo);
	/*se era da stdin, bastava metterlo al posto di "stringa"
	/*a questo punto ti ritrovi in ogni variabile il valore.
	se devi convertire le stringhe in numeri:*/
primo=atoi(valore1);
ciao!
-- 
By_Baitch
"Live Your Life!" (Ring ain't a jail)
http://utenti.tripod.it/baitch

 Ma in C ??
devi prima imparare il sistema dei tipi in C.
Per fare quello che vuoi fare poi man sscanf o google(sscanf)
Claudio

 
int x,y,z ;
char s[200];
sscanf("10153 6579755 196763 
pippo.paperino.net
","%d%d%d%s",&x,&y,&z,s) ;
ciao
Luca

 primo=atoi(valore1);
Si, e valore1, valore2 ,valore3 ed indirizzo come li inizializzi?
La domanda era questa.
ssprintf() non fa altro che comporre la stringa stringa!!!! Non la scompone!
Per la risposta corretta  rimando il lettore alle altre risposte!
Tommy
Newsgroup: it.comp.lang.c
Titolo: AIUTO URGENTISSIMO

Sono messo male!!
Aiutatemi, devo consegnare per lunedì un progetto per l'esame di Laboratorio
4 ad Informatica, ma un problema ridicolo mi stà bloccando:
devo leggere una riga da un file composto da una sola riga.
io faccio
:
:
char b[MAXLUNG], *h;
FILE *ifp;
:
:
while (fgets(b, MAXLUNG, ifp)) [(graffa)
               p=strtok(b,"\n");
               printf("linea: %s\n",b);
               h=b;
]
:
quando fa la print mi scrive diligentemente la linea, quando vado pero' a
riutilizzare in un'altra parte del programma b o h non c'è più nulla.
AIUTATEMI!!!!!!!! dove stò errando??
Problema 2;
#define dirp getenv("HOME");
entro in una funzione ricorsiva per visitare un albero e quando chiamo dirp
invece di restituirmi il path di ~ mi da' il path della directory che sto'
visitando. come la rimedio??
siate rapidi vi prego il tempo stringe!!

 che sto' visitando. come la rimedio??
lo calcoli una prima volta e lo salvi da qualche parte prima della f. 
ricorsiva, risparmiando anche un sacco di chiamate.

 ricorsiva, risparmiando anche un sacco di chiamate.
Già fatto, l'ho salvata nel file che non riesco a leggere.....come
faccio???? Sono spacciato!!!

 AIUTATEMI!!!!!!!! dove stò errando??
Probabilmente il tuo file contiene righe bianche dopo la prima, così che
ciclando con while sia b che h assumono il valore NULL.
Se devi leggere una riga sola il ciclo while è inutile basta:
fgets(b,MAXLUNG,ifp);
h = strtok(b,"\n"); /* Il puntatore p che usi per strtok() non è dichiarato.*/
Per il secondo quesito, io uso un differente sistema operativo e non posso
risponderti.
HTH gfb

Newsgroup: it.comp.lang.c
Titolo: Aiuto!!

Ciao a tutti,
Devo scrivere una interrupt routine che agganci l'interrupt software
int1,
sapreste indicarmi qualche sito dove cercare del materiale a proposito.
Inoltre vorrei sapere se e come e' possibile detertminare
l'identificativo di un processo sotto windows NT (per es:  notepad.exe
ID 01, iexplorer.exe ID 02 ,etc..).
Grazie per l'attenzione..
Andrea
--
------------------------------------------------------------
Andrea Ferraro
D.I.B.E.
Department of Biophysical and Electronic Engineering
University of Genoa,Italy
Via Opera Pia 15a 16145 Genova
E-mail  : 
fer...@atlas.dibe.unige.it
Phone   : +39 10 353 2780
Fax     : +39 10 353 2795
------------------------------------------------------------

Per quanto riguarda l'interrupt, non so che dirti; per ottenere
l'identificativo di un processo usa la funzione GetWindowThreadProcessId; è
facile da usare e ben documentata. Per usarla devi però già possedere un
handle di finestra; do per scontato che tu sappia come si ottiene, ma, in
caso contrario, continua a postare.
Stefano.
Newsgroup: it.comp.lang.c
Titolo: atof e atoi

Scusate la banalita' del mio problema,ma non riesco proprio a capire le
funzioni di libreria atof e atoi.Per esempio su atoi, il K&R spiega che
serve a convertire la stringa s in un intero.Ma in che modo?Se do alla
funzione una stringa questa mi restituisce un numero?A cosa puo' servire
questa funzione?Sarei grato se me lo spiegaste in modo semplice,magari con
un esempio.


wrote:

par 2.7 pg 51 (Conversioni di tipo)
..."Un esempio è di ciò è dato da questa semplice implementazione
della funzione atoi, che converte una stringa di cifre nel suo
equivalente numerico."
Il K&R2 si riferisce alla possibilità di convertire un char (di questo
si parla dato che una stringa non è altro che un vettore di caratteri
in C) in un intero, più precisamente la conversione da
rappresentazione char (ASCII sul tuo calcolatore) in un intero (tipo
int o qualsivoglia intero).
L'utilizzo della funzione atoi (e atof che fa la medesima cosa solo
che gestisce la conversione in float) può servire in vari casi in cui
è contemplata la conversione da char * (o char[]) a int.
Ad esempio, il passaggio di parametri tramite argomenti da linea di
comando. Faccio un esempio rapido:
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000
int main(int argc, char *argv[]) /* come vedi argv è un vettore di
puntatori a carattere perfettamente compatibile con la funzione atoi()
*/
{
	int items = atoi(argv[1]); /* tasformo una stringa in un
numero */
	int v[MAX];
	int i;
	for(i = 0; i < items; i++)
		v[i] = i * 10; /* inserisco dei numeri nel vettore */
	for(i = 0; i < items; i++)
		printf("v[%d] = %d\n", i. v[i]); /* li stampo */
 
	return 0;
}
presupponendo che tu da linea di comando esegua cosi
# nome_file_exe 15
il programma riempie l'array con dei numeri < items
Ovviamente quel 15 viene visto come una stringa ed ecco che si spiega
l'utilità dell'atoi()
-- 
Lawrence "Rhymes" Oluyede (
rhy...@myself.com
)
"Per cambiare, per diventare un'altra
cosa dobbiamo prima sapere cosa siamo"
(Bruce Lee)
 
 

Seby Bonfiglio wrote:

sono delle semplici funzioni che ti restituiscono il numero rappresentato 
dalla stringa presa in esame. un semplice esempio?
fai conto che te leggi da una qualche sorgente una stringa, e tu lo voglia 
rappresentare in un intero per poterci poi magari fare dei calcoli. tipo te 
hai una stringa contenente 2002. questa e' una sequenza di caratteri, a te 
serve in un int. bene con tuonumero = atoi(stringa); ottieni in "tuonumero" 
la rappresentazione numerica della stringa. metti che vuoi fare un 
programma con un prompt, e accetti l'input con fgets(), e una di queste 
stringhe e' per dire... l'anno corrente, beh passi con atoi(prompt) la 
stringa contenente l'input ottenuto con fgets, ed otterrai una int 
contenente il suo valore, pronto per essere elaborato con le normali 
operazioni matematiche. atof fa lo stesso ma ritorna un double.
spero di essere stato chiaro.
-- 
 Claudio Martella
 Centro Informatico di Ateneo - CCR
 Politecnico di Milano
... Powered By Debian/GNU Linux
Newsgroup: it.comp.lang.c
Titolo: Alberi Binari

Dove trovo documentazione relativa a cosa(definizioni e terminologia) e e
come implementare un albero binario????
P.S: so gia usare le liste bilaterali;)
Tnk

 P.S: so gia usare le liste bilaterali;)
usare od implementare?
Ad ogni modo, se in una lista normale hai un puntatore all'elemento seguente
e quindi puoi in questo modo scorrere tutta la lista, ora in un albero
binario hai due puntatori, uno per ogni figlio. Questo probabilmente lo
sapevi gia' ;-) ad ogni modo non posso mettermi a spiegarti tutto per post,
come ti ho suggerito sopra la cosa migliore e' comprarsi un buon libro. Ci
sono alcuni siti, ma non sono la stessa cosa!
Tommy

 usare od implementare?
Tutti e 2 ;)

> come ti ho suggerito sopra la cosa migliore e' comprarsi > un buon libro.
Quali mi consigli?

 Quali mi consigli?
Ok, il testo di riferimento e':
Introduction to Algorithms, Second Edition
di Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
c'e' da dire che questo testo e' molto accademico, usa molta "matematica" ed
e' scritto in un loro pseudo-codice. In fine, se non hai una buona
preparazione puo' essere di difficile lettura.... detto questo rimane uno
tra i migliori libri.
Alrimenti puoi iniziare con un qualche cosa di molto piu' semplice da
leggere come:
Data Structures and Algorithm Analysis in C++ (2nd Edition)
di Mark Allen Weiss
Questo a mio avviso e' un buon libro.... usa il C++.
Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting,
Searching, and Graph Algorithms (3rd Edition)
di Robert Sedgewick
Il libro di Sedgewick e' un classico, ma questa e' una nuova edizione, la
3a. Sedgewick unisce lo stile accademico del Cormen con la semplicita' e la
praticita' che manca al cormen. Detto questo, so che e' un ottimo libro, ma
... non l'ho mai letto, quindi ti dico per l'idea che mi sono fatto
sfogliandolo.
Alternativamente c'e' la versione in C++:
Bundle of Algorithms in C++, Parts 1-5: Fundamentals, Data Structures,
Sorting, Searching, and Graph Algorithms (3rd Edition)
by Robert Sedgewick
Anche se a mio avviso, magari da persona che ha iniziato a programmare con
linguaggi procedurali, gli algoritmi prefersisco vederli definiti in modo
procedurale piuttosto che orientato ad oggetti.... poi a sfruttare la OO ci
penso io. Ma questa e' una preferenza personale.
Tommy

 di Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
[snip]
Se hai Kernighan e Ritchie, "Linguaggio C", 2ed., dai un'occhiata alla sezione
6.5. Potrebbe essere un buon punto di partenza.
Marco
Newsgroup: it.comp.lang.c
Titolo: Filez in C

Ciao a tutti =)
Ho un piccolo problema, anzi, piuttosto una curiosità:
ho la necessità di modificare un file in modo tale da dover aggiungere un
numero n di bytes (tipo da 1 a anche 1 mega, anche se di solito al massimo
qualche K) in mezzo al file. Ora, ho presente più o meno come funziona la
scrittura di un file e il concetto di stream, e quindi immagino di dover
aprire il file, mettermi nella posizione in cui scrivere, copiare in un
buffer il resto del file, scrivere i dati che voglio in quella posizione e
quindi riscrivere su file i dati copiati nel buffer.
Quello che volevo sapere è
1) se questo è un metodo valido, o se ci sono funzioni particolari che fanno
quello che desidero
2) qual'è il modo migliore per gestire questo buffer, in particolare la
dimensione (se == al resto del file, o in pacchetti da 64K ad esempio) che
rende il processo il più veloce ed efficiente possibile (cosa è meglio,
occupare magari la ram con 5 Mega di file e fare un solo accesso al disco
oppure occupare meno la memoria ma fare più accessi)
Grazie =)

 oppure occupare meno la memoria ma fare più accessi)
Dipende dalla grandezza del file.
Se il file occupa 5 mega non e' bene copiarlo tutto sulla ram, ma come
giustamente hai pensato conviene bufferizzarne alcuni tratti alla volta.
Non ti saprei dire pero' la grandezza ideale di questi pacchetti. Non
conosco dati tecnici in merito.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 ha scritto
nel messaggio news:pan.2003.06.11....@e.questo_sideralis.net...

Newsgroup: it.comp.lang.c
Titolo: VS2008:File di risorse, intestazioni e origine

Ciao a tutti,
chi mi spiega la differenza tra i file di risorse e quelli origine
nell'ambiente VS 2008?
Mi aspetto che gli origine siano i .cpp, le intestazioni i .h, ma gli
origine?
Grazie,
Pietro

 origine?
I file di risorse sono quelli per costruire menu e finestre di dialogo.

Newsgroup: it.comp.lang.c
Titolo: Problemi di Link con Socket

Salve a tutti,
Sto facendo un programma, utilizzando le socket e tutte le funzioni annesse.
In compilazione non mi da nessun problema, in fase di link mi da errori :
_______________________________________________________________________
Linking...
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__gethostbyname@4
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__inet_addr@4
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__recv@16
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__connect@12
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__getservbyname@8
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__socket@12
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__WSAStartup@8
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__send@16
mail_interface.obj : error LNK2001: unresolved external symbol
__imp__closesocket@4
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
_WinMain@16
Debug/Mail.exe : fatal error LNK1120: 10 unresolved externals
Error executing link.exe.
_______________________________________________________________________
Preciso che sto utilizzando VISUAL C++ di Microsoft.
Grazie !

ov77 wrote:

Devi compilare con la corrispondente libreria. Aggiungi la libreria
winsock.lib al linkaggio.

Newsgroup: it.comp.lang.c
Titolo: Da dove comincio???

Salve a tutti....io sono nuovo e vorrei sapere da dove iniziare. 
Ho provato a scaricarmi dei piccoli manuali e il compiler della
borland (turbo C).
Il problema è che non so come usarli e dove scrivere il codice dei
miei programmi.
E' la prima volta che mi avvicino ad un linguaggio di programmazione
(escludendo quel poco Pascale alle superiori) e mi piacerebbe
inserirmi nell'ambiente per imparare.
Come mi consigliate di iniziare?
Thanks to ALL :)

 ha scritto nel messaggio
news:3b0e9022...@news.tin.it...



The trouble with being poor is that it takes up all your time.

Grazie a tutti!!


 toglie un sacco di dubbi ...
Anche un altra persona qui ha cominciato con questo libro ed anche io ce
l'ho.Allora non è male davvero :-)!!!

 l'ho.Allora non è male davvero :-)!!!
Strana forma di ragionamento!!!
| Piergiorgio Pirro
|
| ICQ UIN: 60945968
"We all know Linux is great... it does infinite loops in 5 seconds."
(Linus Torvalds)

toglie un sacco di dubbi ...
Oltre al K&R ho trovato eccezionale "Linguaggio C" di
Herbert Schildt (arrivato alla 3a edizione).
Qualcuno lo conosce ?
Imho un ottimo complemento alla lettura del K&R.
Saluti.
No-one.
--
Perchè chiamare coscienza questo spettro che mi
attraversa il cammino ? (Chamberlain)
Newsgroup: it.comp.lang.c
Titolo: libreria conio.h e linux

Ciao a tutti
Sto sviluppando un programma in C che fa molto uso della libreria conio.h
per la visualizzazione dei risultati del programma in una finestra dos.
Recentemente ho tentato di compilare il mio sorgente con il sistema
operativo Linux e il compilatore GCC e, oltre ad apparire nel sorgente il
carattere  ^M ogni fine riga (ho usato in Win il Borland C++ 5) , non
trovava la libreria conio.h.
So che la conio.h è una tipica libreria Dos, quindi volevo sapere se e con
quali istruzioni era possibile emulare la istruzioni
 - clrscr();
 - gotoxy(int a, int b);
 - getch();
Inoltre mi dà dei problemi con le funzioni matematiche log - exp - e floor
Grazie a tutti.
Ciao,
Fabio

Inoltre mi dà dei problemi con le funzioni matematiche log - exp - e floor
Devi includere la libreria matematica in fase di linking.
Infatti questa libreria non e' agganciata automaticamente.
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

 Fabio
Sotto Linux e' presente la libreria  ncurses  che dovrebbe contenere le
funzioni che hai citato.
Prova a dare un'occhiata qui:
 
http://www.aaronsrod.com/freemoney/ncurses-intro.html
Ciao, U D A.
-- 
<><><><><><><><><><><><><><><><><><><><><><><><
UDA'Software
mailto:
u...@freemail.it
http://www.GeoCities.com/SiliconValley/Bay/2165
ICQ 54186346

 Infatti questa libreria non e' agganciata automaticamente.
Effettivamente io ho incluso la libreria math.h e l'errore che mi dà è
questo:

 necessita' di salvarlo in un formato senza i ^M. E' possibile?
Utilizza 'dos2unix'.
Un modo grezzo e':
$ tr -d '\r' <dosfile >unixfile
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Rexon wrote:
Tempo fa mi sono posto lo stesso problema e cercando in giro su deja mi sono
fatto persuadere all'uso delle curses...
Sono piu' potenti di conio => anche leggermente + complesse, comunque nulla
di trascendetale...
P.S: Perlomeno questo e' il modo con cui mi sono arrangiato io.
     Se vuoi vedere il risultato, mi sembra che pine sia scritto con queste
     librerie
Vi][oZ
-- 
Per rispondere togliere NONSCASSA da reply-to.

Ciao a tutti

Newsgroup: it.comp.lang.c
Titolo: Della serie: 5 in un colpo....

Metal Dave non si è fatto sentire, però ho scaricato da DejaNews i post
relativi agli Hook e mi sono stati utili: grazie quindi (a posteriori).
A proposito, cosa significa letteralmente CBT? (e CLSID?)
Dato che sono autodidatta di Win32 e Ambiente MsVisualC, mi (vi :-))
pongo alcune questioni di varia natura:
1. (Win32/SDK/API) Utilizzando gli scompositori di messaggi (ovvero
'cracker' Saiwa?), corro il rischio di perdere aderenza alla portabilità
futura (in fondo non sono che MACRO...) o sono da ritenersi uno
strumento 'assimilabile' allo sviluppo C in Win32?
2. Ancora: a cosa servono e quando si usano le macro 'duali' FORWARD_...
che vedo associate ad ogni scompositore?
3. Ho provato a fare un 'cracker' per il messaggio WM_HELP (non c'è!),
di cui riporto il sunto:
// Cracker
#define HANDLE_WM_HELP(hwnd, wParam, lParam, fn) ((fn)((hwnd),
(LPHELPINFO) lParam))
// Procedura associata
void Dlg_OnHelp(HWND hwnd, LPHELPINFO lphelpinfo)
{
  GestoreHelpWhatsThis(MSG_NOMEFILE_HELP, lphelpinfo, (LPVOID)
aMenuHelpIDs);
}
// Reference nella DlgProcedure
    .
    #pragma warning(disable: 4070) // warning C4070: return of a 'void'
expression
    HANDLE_MSG(hDlg, WM_HELP, Dlg_OnHelp);
    #pragma warning(default: 4070)
    .
Compilando, mi riporta però quella warning che non riesco a
giustificare.
4. (MsVisualC 5.0) In modo 'pragmatico' ho imparato a impostare
l'ambiente per il target Win32 Application modificando solo la voce
C/C++/Code Generation/Multithreaded DLL dalle impostazioni del progetto;
funziona, ma è l'impostazione 'standard' migliore (cioè, l'ho beccata
giusta?)
5. (Win32/SDK/API) Non sono riuscito a trovare una funziona relativa
agli Help che, dato un handle ad un help, mi ritorni le stringhe degli
item relative. Evidentemente CI deve essere, ma non riesco ad
individuarla (ehm...)
Gracias!!

individuarla (ehm...)
Non mi e` chiarissimo cosa tu desideri... la funzione WinHelp, che
e` quella che si usa di solito (e non ne conosco altre), l'help lo
_mostra all'utente_, non "torna stringhe" al tuo programma.
Alex
Newsgroup: it.comp.lang.c
Titolo: Funzione del C può ritornare un array bidimensionale?

Salve a tutti , una funzione del C può ritornare
una array bidimensionale " int ax [10][10]" di interi  ?
Grazie a tutti
Ciao

 una array bidimensionale " int ax [10][10]" di interi  ?
Premetto che studio il c da poco, però un paio di cosette credo di averle 
capite, questa di preciso non la so,xò provo ugualmente a darti una 
risposta. Prendi quindi le mie parole con beneficio di inventario :)
Io credo che una funzione non possa ritornarti un array bidimensionale, ma 
credo che possa però ritornarti l'indirizzo di memoria in cui è memorizzato 
quell'array...
Pronto ad essere smentito..
Bye.
Katte.

 Pronto ad essere smentito..
Piccola correzione: non c'e' bisogno di ritornare l'indirizzo di un array
bidimensionale xche' l'array alla funzione lo passi x indirizzamento e non
per valore.
Maurizio

 una array bidimensionale " int ax [10][10]" di interi  ?
#include <stdio.h>
#include <stdlib.h>
typedef int TArray[3][3];
typedef struct { TArray A; } TStruct;
TStruct myfunction(int value)
{
        TStruct S;
        int i, j;
        for (i = 0; i < 3; i++)
        {
            for (j = 0; j < 3; j++)
            {
                S.A[i][j] = value;
            }
        }
        return S;
}
void writearray(TArray A)
{
     int i, j;
     for (i = 0; i < 3; i++)
     {
         for (j = 0; j < 3; j++)
         {
             printf("%d; ", A[i][j]);
         }
         printf("\n");
     }
}
int main()
{
    TStruct S = myfunction(5);
    printf("\n");
    writearray(S.A);
    return 0;
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: scatter plots

scusate,qualcuno mi sa dire come posso stampare scatter plots in
C???aiuto,vi prego
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 C???aiuto,vi prego
Usando fprintf() ( similare), se ti accontenti di ascii art, usando
una qualche libreria grafica se l'ascii art non e' sufficiente.
Nel secondo caso saresti OT (anche se vuoi usare il "C").
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C:>iao Angelo
grazie,molto gentile

Newsgroup: it.comp.lang.c
Titolo: [?] Troncare la lunghezza di un file sotto MSDOS

Ciao a tutti,
Sto programmando in Borlan C/C++ 3.1 per Dos, e mi trovo nella necessità
di dover troncare la lunghezza di un file (accorciarlo).
In teoria doveva esserci la funzione di libreria ftruncate() ma non c'e', e
non riesco a trovarene
una equivalente.
Sapete come fare?
Grazie,
Ciao
Ettore Maronese, il Mes

 Sapete come fare?
Copi il file fino al byte n-esimo  in un file temporaneo e poi sposti il
file temporaneo sopra quello originale. Una cosa del genere:
FILE *f, *tmp;
char buff[1024];
int c = 0;
int max = 2000;
f = fopen("some.file", "r");
tmp = fopen("tmp.file", "w");
while(c < max) {
	int t;
	t = fread(buff, 1, sizeof(buff), f);
	if (t == 0)
		break;
	if (c + t > max)
		t = max - c;
	c += t;
	fwrite(buff, t, 1, f);
}
fclose(tmp);
fclose(f);
rename("tmp.file", "some.file");
aggiungendo tutti i controlli necessari. Se vuoi evitare un buffer
intermedio puoi fare cosi`:
int c;
FILE *f, *tmp;
int i, max = 2000;
...
for (i = 0; i < max; i++)
	if ((c = getc(f)) == EOF)
		break;
 
	putc(c, tmp);
}
...
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Il piu` bel momento dell'amore e` quando ci si illude che duri
per sempre; il piu` brutto, quando ci si accorge che dura
da troppo.

 di dover troncare la lunghezza di un file (accorciarlo).
in io.h, quindi non C standard, c'e' la funzione chsize.
ciao
donCiccio


GRAZIE donCiccio
Grazie Kronos
Per avermi risposto :))
Ciao
Ettore Maronese, il Mes
il Sito Comune di it.comp.lang.visual-basic : 
http://www.it-lang-vb.net
il Mio sito: 
http://www.maronese.com/mes

Newsgroup: it.comp.lang.c
Titolo: DOVE SONO LE FAQ?

Scusate, visto che ho qualche difficoltà a programmare vorrei leggere le Faq
del ng , prima di TEMPESTARVI di domande fino a farmi odiare.
Che ne dite?

Che ne dite?
Non credo esistano le FAQ del gruppo.
Sbaglio ?

Allora sarò costretto a TEMPESTARVI di domende miei cari amici
programmatori..    ;)
"Andrea Laforgia" <xx...@xxxxx.xxx> ha scritto nel messaggio
news:ce3ahtge3bfpoconk...@4ax.com...


 Sbaglio ?
Come no? Io ne ho una copia. Credo si trovino su 
www.programmazione.it
.
EMG

Come no? Io ne ho una copia. Credo si trovino su 
www.programmazione.it
.
Mea grandissima culpa ;)

 Sbaglio ?
Tempo fa qualcuno aveva cominciato a redigerle, ed erano state pubblicate
su 
www.programmazione.it
 ; io devo averle da qualche parte, sicuramente.
Non so se sul sito ci siano ancora...
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

Non so se sul sito ci siano ancora...
si, ci sono ancora
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it
Newsgroup: it.comp.lang.c
Titolo: Leggere una stringa con spazi da un file..

Salve a tutti,
vorrei capire come poter leggere un intera stringa contenente spazi (da
un file),
e registrarla in un puntatore char:
char *stringa;
FILE *file;
file = fopen("file.txt", "r");
/* omissione controlli di errore..... */
fscanf(file, "%s\n", stringa);
Be' in questo modo la stringa ottenuta e tagliata,
nel senso che fscanf si ferma al primo spazio che trova....
Grazie per un eventuale aiuto...
--
+ 
g.gab...@europe.com
 ---------------+
|                               Linux  |
+---------------- the free philosophy -+

 spazi (da un file), e registrarla in un puntatore char:
	$ man fgets
	Alla prossima,
		Marco

Marco Natoni wrote:

fatto e rifatto.... ma volevo un esempio pratico.....
Grazie


fatto e rifatto.... ma volevo un esempio pratico.....
Occhio che non l'ho compilato :
#include <stdio.h>
int main()
{
    char buf[50] ;
    FILE *fp = fopen( "mio.txt", "rt" ) ; 
    if ( fp ) 
       fgets( buf, sizeof buf, fp ) ; 
    return 0 ;
}
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
#exclude <windows.h>

Andrea Laforgia wrote:

Grazie Andrea...


 fatto e rifatto.... ma volevo un esempio pratico.....
<code>
	/*
	 * head.c -- reads and print to the standard output the 
	 * very first line of a given file or from the standard 
	 * input
	 */
	#include <stdio.h>
	#define BIG_ENOUGH 128
	int main(int argc,char **argv)
	{
		char buffer[BIG_ENOUGH];
		FILE *input;
		if(argc<2) input=stdin;
		else 
			if((input=fopen(*argv+1),"rt")==NULL) {
				perror(*(argv+1));
				exit(1);
			}
		fgets(buffer,BIG_ENOUGH-1,input);
		puts(buffer);
		close(input);
		return 0;
	}
</code>
	Alla prossima,
		Marco

                 close(input);
	if(argc>1) fclose(input);
	Alla prossima,
		Marco

 fgets(buffer,BIG_ENOUGH-1,input);
Se non erro si puň scrivere
fgets(buffer,BIG_ENOUGH,input);
in quanto la funzione fgets() non legge piů del numero di caratteri
specificato *meno uno* e poi aggiunge un '\0'.
EMG

 caratteri specificato *meno uno* e poi aggiunge un '\0'.
  Vero, il messaggio era gia` stato corretto una volta: mai scrivere di
prima mattina. :)
	Alla prossima,
		Marco

 mai scrivere di prima mattina. :)
O a tarda notte. :-)))
EMG

Newsgroup: it.comp.lang.c
Titolo: [NIUBBO]domanda

Ciao, sono nuovo si adel Ng che del linguaggio C. ho un adomanda che
mi frulla per la testa,. tra C e Visual C che differenze ci sono? ci
sono differenze a livello di sintassi? 
Grazie

Alex G. wrote:

Visual C++ č il tool di sviluppo C/C++ della Microsoft. In pratica č uno 
strumento che puoi usare per scrivere e compilare programmi C/C++ per 
windows (essendo disponibile per windows).
Sostanzialmente supporta il C standard piů le estensioni Microsoft e le 
estensioni specifiche per lo sviluppo windows.



grazie 100000000000%
buona programmazione!
Alex
Newsgroup: it.comp.lang.c
Titolo: Blocco stringa

C' č un modo per bloccare una stringa mentre viene digitata?.....
esempio:
la stringa non puo contenere piů di 10 caratteri.....
l' utente puň digitare massimo, appunto, proprio 10 caratteri... e se vuole
digitarne un altro... non lo puo fare perchč gli viene bloccata la
scrittura.
:-D ciao

C'è il modo, ma per farlo la devi implementare tu, sia esso funzionante a
riga di comando sia esso con grafica; nel primo caso è molto più complessa e
devi usare un ciclo che controlla il carattere restituito e il num di car
digitati in modo da non visualizzarli più. In dos guarda la funzione getch()
che è ottima per questa cosa visto che l'ho già usata anni fa.
--------------------------------
Inviato via 
http://usenet.libero.it

 che è ottima per questa cosa visto che l'ho già usata anni fa.
Ho provato ad utilizzare getchar.... ma poi non permette di cancellare ciò
che uno scrive... :-(


Esistono molte funzioni non standard per ottenere questo. Probabilmente 
in <conio.h> per Windows e <curses.h> per Unix.

Newsgroup: it.comp.lang.c
Titolo: Opzioni compilatore c

ciao a tutti. Sono un neofita della programmazione in c e volevo sapere
a cosa servivano le  opzioni di ottimizzazione del compilatore c. Al
massimo datemi un sito sul quale leggerle. Ciao e grazie

Cripple Cip wrote:

Le opzioni di ottimizzazione fanno si che il compilatore
cerchi di ottenere del codice piu' veloce o piu' compatto.
Mediamente cambiano a seconda del compilatore e poi anche a seconda
della CPU  per la quale il codice viene generato.
Quindi la cosa migliore e' che tu vada nel sito relativo
al tuo compilatore.
Se tu fossi sotto linux ti basterebbe fare
man gcc
se tu fossi sotto windows ti basterebbe probabilmente
guardare nella guida in linea del tuo compilatore.
ciao,
v.

Newsgroup: it.comp.lang.c
Titolo: C++ opp. VB? Quale scegliere per chi deve spendere molti soldi di un corso?

Mi sto addentrando nella programmazione e sono molto indeciso se iniziare
con il C++ o con il VB.
Potete indicarmi qualche pro e contro di questi due ottimi linguaggi? Mi
sareste molto utili nella scelta, visto che le scuole sono molto costose.
Grazie 1000
Dhokaa

 Potete indicarmi qualche pro e contro di questi due ottimi linguaggi?
Il VB fa schifo ma è molto più semplice e più richiesto. Il C++ è
stupendo ma è complicatissimo e molto più potente.
EMG

 ha scritto nel messaggio
news:38F1E5D7...@flashnet.it...
