mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Funzioni Turbo C in C++: aiuto!

Sto sviluppando una piccola applicazione che consente di importare dalla
COM1 una stringa di dati provenienti da un terminale industriale (una
bilancia).
Sviluppanto l'applicazione in Borland Turbo C non ci sono problemi,
utilizzando la funzione bioscom( ) della libreria bios.h la routine funziona
perfettamente.
Siccome mi interessa sviluppare un'applicazione possibilmente win32 mi sono
ritrovato tra le mani un non proprio recentissimo Borland C++ ver. 4 e l'ho
installato.
Il C++ perň mi genera problemi. Inserendo lo stesso sorgente Turbo il
compilatore lo compila correttamente senza nessun errore. In fase di linking
perň genera un errore in quanto non riconosce le funzioni di bios.h
("Undefined symbol _bioscom in module ...").
Perchč? Cosa devo fare per fargli digerire queste funzioni?
Naturamlente il linker non riconosce nessuna funzione proveniente di bios.h.
Ho provato a cambiare tutte le opzioni possibili ed immaginabili dei vari
menu di conpilazione, link, preference e chi piů ne ha piů ne metta. Le
directory Include e Lib sono corrette e, ripeto, il compilatore non genera
errori.
Ringrazio chiunque possa aiutarmi.
Grazie

 wrote in message
news:HzHh7.3549$%a4.1...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Ridefinire il tipo di dato

Per problemi di compatibilita' ho dovuto ridefinire i tipi di dati tra
cui per esempio:
typedef unsigned char uchr;
pero' sono comparsi dei warning che a mio avviso non dovrebbero esserci
:-)
es.
void foo (uchr *a);  // prototipo
void foo (uchr *a) {
...
}
nella funzione chiamante:
foo ("test"); // qua scatta il warning
se faccio:
foo ((uchr*)"test");  // funziona tranquillamente
Il warning me lo da probabilmente perchè la stringa "test" viene vista
dal compilatore automaticamente in char e non in unsigned char. La
domanda e':
l'unico sistema che mi rimane è di modificare TUTTE le chiamate con
(uchr*)? Non esiste un altro metodo?
ps. non voglio disabilitare le opzioni del compilatore per evitare
questo...
Grazie in anticipo ciao!

 questo...
diciamo che forse dovrai *abilitare* qualche opzione :)
hai un compilatore un po' schizzinoso... ho provato con i
compilatori: MS, Borland, OpenWatcom e GCC e non protestano.
L'unico che rompe è il DigitalMars.
Comunque di solito ci esistono delle opzioni da linea di
comando per dire al compilatore che i char sono unsigned di
default o per "rilassare" il typechecking.
ciao.

 questo...
L'altra soluzione è fregarsene del warning. Non è che hai molte 
alternative.
D'altra parte, se tu passi un signed ad una funzione che richiede un 
unsigned, sei tu programmatore a sapere se, caso per caso, si può fare. 
Chiaramente dipende dalle operazioni che fai e il risultato che ti aspetti.

Vedrò di leggermi il manuale del compilatore, era la risposta che
temevo... :-)
Grazie a tutti ciao!

Grazie a tutti ciao!
Forse è un problema di const. Con certi compilatori "Pippo" è const char* 
(perchè viene salvato nell'immagine dell'exe e quindi non è modificabile). 
Prova a vedere.
Mmmh... Vedo nell'help del VisualC++ (tanto per fare un esempio) che di base 
char è signed char. (si sta parlando dell'opzione /J che serve a impostare 
il carattere predefinito unsigned)
Quoto inoltre:
ANSI C and C++ do not require a specific implementation of the char type. 
This option is useful when you are working with character data that will 
eventually be translated into a language other than English.
--- bye

Ho trovato una opzione del compilatore, apposta riguardo il char, di
default viene visto come signed char, una volta deselezionata l'opzione
i warning sono spariti.
Grazie a tutti

Newsgroup: it.comp.lang.c
Titolo: Sorgente multifile...regole generali...

Ciao a tutti, scusate se la domanda puň essere cretina...ma si puň trovare
in rete un testo che illustri le regole generali da tenere quando si crea un
sorgente su piů file (che spieghi in parole povere cosa mettere negli header
file etc...)...
Grazie 1000 per l'help
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/


I'm not prejudiced, I hate everyone equally.

Utilissimo e gentilissimo, grazie!!!

Newsgroup: it.comp.lang.c
Titolo: ancòra sulle librerie

Ciao a tutti,ho provato a scrivere una libreria di funzioni in C,ma,anche
con le vostre indicazioni,non son riuscito a farla funzionare. Il linker mi
dà errore ...
Volevo chiedervi perciò: se io posto di seguito una semplice funzione,con
direttive include , dichiarazioni di variabili ecc. mi fareste un esempio di
libreria e header associato,partendo da questa semplice funzione?
Un'altra cosa: le faq del gruppo dove le posso trovare?
Ciao e grazie,
Alberto.
#include <stdio.h>
#include <iostream.h>
#include <fstream>
#include <string.h>
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <dos.h>
#include <dir.h>
#include <errno.h>
#include <alloc.h>
#define SUCCESS 0
int subdir_num = 0, idx = 0;
char **rect = NULL;
char** do_dir(char *path);
char** do_dir(char *path)
{
      char search[256], newpath[256];
      struct find_t ffblk;
      strcat(strcpy(search, path), "\\*.*");
      if (SUCCESS == _dos_findfirst(search, _A_SUBDIR, &ffblk))
         do
         {
            if (ffblk.attrib & _A_SUBDIR && '.' != *
ffblk.name
)
            {
                  strcat(strcat(strcpy(newpath, path), "\\"), 
ffblk.name
);
                  (rect[idx])=(char*)(malloc((sizeof(newpath))+1));
                  strcpy(rect[idx],newpath);
                  idx++;
                  do_dir(newpath);
            }
         }
         while (SUCCESS == _dos_findnext(&ffblk));
         rect[idx]=NULL;
         return rect;
}

Mio consiglio personale: usa le libtool della GNU - ti permettono di 
generarare librerie portabili su praticamente ogni sistema ;)
Le FAQ, se non erro, si trovavano su www.programmazione.it...
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

Newsgroup: it.comp.lang.c
Titolo: Aggiungere icone ai programmi C

Ciao a tutti.
Ho una domanda che mi assilla da diverso tempo ma cercando qua e là su 
internet non ho trovato nulla.
In pratica, dato un sorgente C, come si fa a fare in modo che l'EXE prodotto 
dal processo di compilazione abbia una particolare icona e non quella di 
default di Windows?
Ringrazio anticipatamente tutti coloro che mi risponderanno.
-- 
*Rain*
«Il cuore ha le sue ragioni che la ragione non conosce»
[Blaise PASCAL] 

default di Windows?
it.comp.programmare.win32

 it.comp.programmare.win32
OK

Newsgroup: it.comp.lang.c
Titolo: Ordinamento di una lista

Chiedo una cortesia a chiunque mi possa aiutare.
Ho bisogno di un algoritmo di ordinamento di una lista semplicemente
concatenata, possibilmente non ricorsivo.
I nodi della lista hanno la seguente struttura
typedef struct tag_nodo
            {    char lettera;
                  struct tag_nodo * next;
            } nodo, * lista;

 ha scritto nel messaggio
news:Q%GU7.2430$db7.6...@twister2.libero.it...


 ha scritto nel messaggio
news:ubHU7.2402$QL2....@twister1.libero.it...


 concatenata, possibilmente non ricorsivo.
il bubblesort e il selection sort funzionano di sicuro, quindi se la 
lista e' di pochi elementi possono fare al caso tuo.
Cmq penso che il piu' effieciente per le liste sia il mergesort: prova 
a cercare in rete, trovi sicuramente qualcosa.
ciao 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: riconoscere il sistema operativo

come faccio a far riconoscere il sistema operativo al compilatore per 
effettuare delle scelte
tra system("cls"); e system("clear");?

Be', sul Borland C++ 5.0 ci sono alcuni define settati al momento
dell'installazione: tipo __WIN32__, poi non so, di sicuro ce ne sono
altri per altri OS ma ora non me li ricordo, meglio se vai a guardare il
windows.h, credo.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Leggi la documentazione del tuo compilatore: in C standard non c'e' 
nulla per saperlo.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 tra system("cls"); e system("clear");?
Usi la compilazione condizionale offerta dal preprocessore C.
Quasi tutti i compilatori hanno la possibilità di definire delle macro sulla
riga di comando (con una sintassi che varia da compialatore a compilatore:
guarda il manuale).
Quindi, nel tuo programma farai una cosa del genere:
// pippo.c
...
#if defined(OS_DOS)
   system("cls");
#else if defined(OS_UNIX)
   system("clear");
#else if ... ecc.
    ... ecc.
#else
    #error "Sistema operativo sconosciuto."
#endif
...
Poi, quando compili in Unix definisci la macro OS_UNIX:
   # cc pippo.c -D OS_UNIX
Qualdo compili in DOS definirai la macro OS_DOS
   C:> cl pippo.c /dOS_DOS
E via dicendo con gli altri sistemi operativi che ti servono...
La direttiva #error causa artificialmente un errore di compilazione fatale
nel caso che il programmatore si dimentichi di definire la macro sulla riga
di comandi.
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 #else if defined(OS_UNIX)
Ops! La sintassi corretta č:
   #elsif defined(OS_UNIX)


    #elsif defined(OS_UNIX)
#elif defined(OS_UNIX)
;-)

...

'Azz! Dovrebbero mettere la colorazione sintattica anche su Usenet.
--
Cingar
Newsgroup: it.comp.lang.c
Titolo: Pulire lo schermo!!!

 Questo non è proprio vero, 
  Mi sa di si`, invece. Il terminale della mia Linux Box non interpreta
la sequenza di /escape/ '\f' come il tuo amico di mirc ti ha suggerito.
	Alla prossima,
		Marco

la sequenza di /escape/ '\f' come il tuo amico di mirc ti ha suggerito.
Il Bcc55 lo accetta come valido e funziona.... boh... comunque il bcc55
accetta anche l'istruzione clrscr();
ciao da ChillOut

ChillOut,

  Non e` una questione di compilatore ma di terminale: evidentemente il
terminale del DOS interpreta il /page/ /feed/ come una stampante, mentre
quello di Linux no. 
  Effettivamente printf("\f") e` conforme allo standard ma fa
riferimento ad una caratteristica della piattaforma e, quindi, non e`
portabile.
  Se ci pensi, anche
	system("shutdown -r now");
e` perfettamente standard, solo che su una piattaforma Linux puo`
ottenere il riavvio del sistema, mentre su una piattaforma Microsoft
provoca solo un errore.
	Alla prossima,
		Marco

 provoca solo un errore.
Giusto..... quindi effettivamente dipende dall' So e dal Compilatore!!

Newsgroup: it.comp.lang.c
Titolo: libro avanzato ?

Ho da poco finito di studiare "Programmare in C" di Aitken e Jones.
Ora come posso continuare il mio studio ?
mi ci vorrebbe un libro che tratti argomenti avanzati o comunque
riprenda gli stessi argomenti già letti e li approfondisca...
Voi che testo mi consigliate ?


il mio consiglio è quello di sperimentare largamente quello che hai 
appreso fino ad ora. Leggere un libro è una buona cosa ma per imparare a 
programmare l'unico modo è programmare! Gettati in qualche progetto o 
iniziane uno tutto tuo: l'importante è codare, codare e codare ancora.
buona fortuna


Ciao! Suggerisco inoltre di codare, codare e codare :). Gran bel libro
"Programmare in C". Ti suggerirei dopo di proseguire con lo studio di
qualche struttura "famosa" quali gli alberi, i grafi e compagnia bella.
Dopo, se vuoi, passa a studiare anche il C++ (se vuoi!). Io l'ho imparato
grazie al "C++ Corso di programmazione 3 edizione" di Lippman e Lajoie.
Dopo, devi codare, codare e codare :). Dicci su cosa vuoi essere orientato;
se e' programmazione di videogame posso cercare di aiutarti :)
P.S. sul sito amazon trovi tanti libri MOOOOLTO interessanti ;)
HellHound - uccidi CERBERO per l'indirizzo

"IndieAlex" <indieale...@TOGLIMIvirgilio.it> ha scritto nel messaggio
news:O0Oqa.10298$3M4.2...@news1.tin.it...

Considera l'approccio linux: prendi un programma che ti piace e comincia a
guardarne il
codice, pensando magari a qlc modifica da farsi. Usa internet e il libro che
hai già come reference,
e vedrai che pian piano inizi a capire bene gli argomenti "sul campo"..
    Fab
Newsgroup: it.comp.lang.c
Titolo: printf

potrebbe essere una domanda idiota :)
- - -
invece di avere i campi fissi  come in  printf("%10.4f", numero),
vorrei passare la larghezza del campo e la precisione con delle variabili;
non ho trovato di meglio che fare:
char tmp[20];
...
sprintf(tmp,"%%%d.%d", campo, precisione);
printf(tmp, numero);
c'è qualche altro sistema di cui non sono a conoscenza?

potrebbe essere una domanda idiota :)
- - -
invece di avere i campi fissi  come in  printf("%10.4f", numero),
vorrei passare la larghezza del campo e la precisione con delle variabili;
non ho trovato di meglio che fare:
char tmp[20];
...
sprintf(tmp,"%%%d.%df", campo, precisione);


 non ho trovato di meglio che fare:
Esempio:
int lentot = 12;
int lenfrac = 3;
double num=1234.567;
printf ("%*.*lf", lentot, lenfrac, num);

Newsgroup: it.comp.lang.c
Titolo: socket: settare la porta del client

Salve Ragazzi,
Ho fatto un programmino C sotto linux.
Creao una socket e la faccio connettere ad un altro pc dove gira il
programma server.
La mia domanda è:
Come posso settare la porta della socket del client?
Posto il codice di seguito:
---------------------------------------------------------------------------------------------
int main(void)
{
	struct sockaddr_in server;
	int sock_fd;
	char buff[MAX_LINE]="",	c;
	// Creazione socket
	if((sock_fd=socket(AF_INET,SOCK_STREAM,0))<0)
	{
		perror("Socket Failure : ");
		return(-1);
	}
	// Pulizia indirizzo
	memset((struct sockaddr *)&server,0,sizeof(server));
	server.sin_family=AF_INET;
	server.sin_port=htons(SERVER_PORT);
	if(inet_pton(AF_INET,SERVER_IP,&server.sin_addr)<=0)
	{
		perror("Creazione indirzzo fallito");
		return(-1);
	}
	if(connect(sock_fd,(struct sockaddr *)&server,sizeof(server))<0)
	{
		perror("Connect failure");
		exit(-1);
	}
		printf("comando: ");
		fgets(buff,MAX_LINE,stdin);
		if(FullWrite(sock_fd,buff,sizeof(buff)))
		{
			perror("Scrittura sulla socket fallita");
			return(EXIT_FAILURE);
		}
		while(FullRead(sock_fd,buff,MAX_LINE)==0)
			printf("%s",buff);
		exit(EXIT_SUCCESS);
}
----------------------------------------------------------------------------------------
Grazie in anticipo per la risposta,
Cris

E' una gestione del sistema operativo.
Non puoi decidere la porta del client.

 Non puoi decidere la porta del client.
Puoi benissimo scegliere la porta, invece. Di solito non lo si fa, ma si
può.
Qui l'argomento è OT. Il newsgroup giusto (data la piattaforma dell'OP) è: 
  it.comp.os.linux.development
(Attenzione: ho impostato il follow-up!)
Max

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

Vorrei lanciare all'interno di un programma c un altro programma c, come
posso fare??

 posso fare??
Vedi le famiglie funzioni exec-() e spawn-()
Ciao

 posso fare??
system( "nomeprogramma" );
EMG
Newsgroup: it.comp.lang.c
Titolo: Programma semplice

Come faccio in un programma c che converte le lire in dollari, franchi e
marchi a far scvegliere all'operatore in quali monete convertire le lire?
Grazie ad ognuno che risponderà

marchi a far scvegliere all'operatore in quali monete convertire le lire?
Come funziona il programma? L'hai scritto tu? Fatti dare la
documentazione, oppure fatti spiegare come funziona. Dai un'occhiata
al README
E cmq che c'entra con iclc ?
--
Rhymes
rhy...@myself.com
http://www.foxhound-games.it

Newsgroup: it.comp.lang.c
Titolo: Come gestire una scroll bar in un controllo Rich Edit con Visual C SDK

Salve a tutti, il mio problema è riuscire ad intercettare i messaggi
inviati ad un rich edit quando utilizzo una scroll bar verticale.
Ho provato ad intercettare il messaggio WM_VSCROLL, EN_VSCROLL, sia
nella funzione PadreProc sulla quale è incollata la finestra figlia
(rich edit), sia nella funzione FiglioProc ma nulla da fare, dove
sbaglio?
grazie sin d'ora per l'aiuto che saprete darmi.
P.S. Stò utilizzando MS Visual C 6.0.
Astenersi chi deve solo dire che il post è ot per qualche newsgroup.
Thankyou.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Astenersi chi deve solo dire che il post č ot per qualche newsgroup.
Infatti il post č OT, p cosě difficile postare nel newsgroup giusto
(it.comp.programmare.win32)?
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c
Titolo: Perchè mi da errore?

Salve a tutti, č da stamattina che sto provando un prog. che in fase di
compilazione mi da sempre errore! l'errore č: "no new line at end of file"
e la riga č questa:
printf ("Le linee sono:%d\n", nl);
Ho sbagliato a mettere li \n?
Vi prego aiutatemi
Un saluto
--
----------------------------------------------
ICQ NUMBER: 147421455
http://www.posieidon.3000.it

 "no new line at end of file"
Analizza bene la frase:
dice: "nessun newline alla fine del _file_" e non di una riga di
codice :) Dunque il tuo problema č che devi mettere una riga vuota
alla fine del file (suppongo dopo la parentesi di chiusura del main o
dell'ultima funzione presente)
--
Rhymes (
rhy...@myself.com
)
Brainbench Certification:
Language: Java 1, Score: 3.29, Date: 2001-10-02 
http://www.brainbench.com/transcript.jsp?pid=2435730

Salve a tutti, č da stamattina che sto provando un prog. che in fase di
compilazione mi da sempre errore! l'errore č: "no new line at end of
file"
e la riga č questa:
printf ("Le linee sono:%d\n", nl);
Ho sbagliato a mettere li \n?
Vi prego aiutatemi
Un saluto
--
----------------------------------------------
ICQ NUMBER: 147421455
http://www.posieidon.3000.it
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ho sbagliato a mettere li \n?
mai hai letto la mia risposta?


 --
Si, scusa l'ho letta, solo che ho inviato il messaggio due volte, quello di
outlook è arrivato il giorno dopo...
quindi basta che do un invio...? giusto?
Grazie ciao

quindi basta che do un invio...? giusto?
si 
ps. patcha outlook


Newsgroup: it.comp.lang.c
Titolo: Eseguire script shell in ambiente unix

Salve a tutti.
Dovrei eseguire uno script di shell (.sh), possibilmente con bash,  in 
ambiente unix da un piccolo programma scritto in c.
Come devo fare? Esiste una libreria da importare che mi permette di fare 
questo?
Grazie.
 


man 3  system
Giorgio

 Giorgio
Ah bene bene un indizio :-)
Grazie, è più che sufficiente.
 



consiglio le exec.. sono più maneggievoli e hai più possibilità con i 
parametri.
ciao
Newsgroup: it.comp.lang.c
Titolo: for missing ;

ho provato a creare un programmino che, inserito un numero, calcola se
questo e' primo o meno (vedi listato, eseguito con TurboC su ms-dos).
Quello che non riesco a capire e' che nella riga evidenziata ricevo
due notifiche:
warning: Code has no effect
error: For statement missing ;
qualcuno saprebbe spiegarmi dove sto sbagliando?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
main()
{
    char *cpNumero;
    int iNumero, a;
    clrscr();
    printf("CALCOLO DEI NUMERI PRIMI\n\n");
inizio: ;
    printf("inserisci un numero:");
    gets(cpNumero); 
/* non ho usato scanf per controllare che non vengano digitate lettere
*/
    if (!(iNumero = atoi(cpNumero)))
       {
       printf("devi inserire un numero!!\n\n");
       goto inizio;
       }
    for (a = 1, a <= (iNumero / 2), a++)   ***************************
        {
        if (!(fmod(iNumero,a))) then
           {
           printf("il numero e' divisibile almeno per %i\n", a);
           exit;
           }
        }
    printf("il numero %i e' un numero primo\n", iNumero);
}
Aranar
e-mail: 
ro...@geocities.com
http://www.nettaxi.com/citizens/Aranar/
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
    (sopratutto VgaPlanets)

           exit;
exit() del C non corrisponde a exit() del pascal.
Per simulare cio' che avviene in pascal, usa l'istruzione (non
funzione) 'break'.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

 wrote:
:     for (a = 1, a <= (iNumero / 2), a++)   ***************************
                ^                   ^
for (a = 1; a <= (iNumero/2); a++) ?
          ^                 ^
antirez

          ^                 ^
e' vero!, che errore stupido


operativo.
ehm, uhm, come debbo fare? usando malloc?



   Corretto: for (a = 1; a <= (iNumero / 2); a++)
Mancava la condizione di fine ciclo.

     for (a = 1, a <= (iNumero / 2), a++)   ***************************
hai utilizzato, per errore, la virgola al posto del punto e virgola.
Avresti dovuto scrivere:
for (a = 1; a <= (iNumero / 2); a++)
EMG

ehm, uhm, come debbo fare? usando malloc?
Certo, 
char *p ;
...
p = malloc( numero_caratteri_da_puntare ) ;

Newsgroup: it.comp.lang.c
Titolo: un'idea per un progetto object oriented

Dovrei consegnare un progetto per la programmazione orientata agli oggetti ma non ho idea di cosa realizzare nè 
come farlo, qualcuno potrebbe aiutarmi?
-- 
Posted from 
ns.oneonline.it
 [151.4.27.2] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 come farlo, qualcuno potrebbe aiutarmi?
La programmazione ad oggetti... io il primo programma orientato era un 
programma che con due click del mouse creva un box se clicavi dentro 
diceva dentro se clicavi fuori dieva fuori... è molto semplice... puoi 
provare a fare qualcosa del genere... se vuoi il file mouse.h basta che 
mi fai un fischio...
-- 
IL RAZZIATORE,
The Only good Windows is an Unistalled Windows
-----------------------------------------------------
EMAIL: 
razzi...@usa.net
WEB:   
www.geocities.com/il_razziatore/
 
razziatore.eyep.net
 (dalle 20.00 alle 8.00)
ICQ:   67552596

...


Newsgroup: it.comp.lang.c
Titolo: convertire indirizzo IP

Qualcuno sa qual'è la funzione per convertire l'indirizzo IP dalla forma
000.000.000.000 (oppure 000.000.000) a quella binaria, so che si deve usare
'inet_aton', ma quando compilo sotto windows, il compilatore mi da questo
errore:
undefined reference to `inet_aton'.
Questi sono gli include nel codice:
#include <windows.h>
#include <winsock2.h>
e durante la compilazione linco la libreria ws2_32.
Grazie

"Nuke" <man...@inwind.it_nospam> ha scritto nel messaggio
news:WXv2b.265349$Ny5.8...@twister2.libero.it...

qua' sei OT ti fowardo sul ng giusto "I.C.programmare.win32"
per il resto devi usare inet_addr ;) dove la hai vista la inet_aton ???
cmq sarebbe meglio cmq usare la gethostbyname cmq vedi tu ... questa ti
porta un po' di overhead in piu' ma e' piu' sicura (la inet_addr la puoi
fregare nelle conversioni ed ottenere ip sballati)
ciao

Nuke wrote:

Non conosco il mondo windoze... cmq in linux è corretto chiamare la funzione
inet_aton per convertire un indirizzo numerico, ad esempio "127.0.0.1", in
formato binario.
se fallisce, perché ad esempio è in formato "
www.linux.org
", chiami
gethostbyname per risolverlo.
man inet_aton 
dice...
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
Ciao

 per il resto devi usare inet_addr ;) dove la hai vista la inet_aton ???
E` l'interfaccia corretta. inet_addr non ha modo di segnalare una
conversione fallita ed e` deprecata. inet_aton e` da preferirsi:
int inet_aton(const char *cp, struct in_addr *inp);
Kronos
-- 
Home: 
http://kronoz.cjb.net
Al termine di un pranzo di nozze mi hanno dato un
amaro alle erbe cosi' schifoso che perfino sull'etichetta
c'era un frate che vomitava.
Newsgroup: it.comp.lang.c
Titolo: attraversare un albero binario senza usare ricorsione

come posso attraversare un'albero binario del tipo
struct nodo {
        char *nome;
        struct nodo *sinistra;
        struct nodo *destra;
}
senza usare la ricorsione?
grazie in anticipo dell'aiuto o consiglio.
-- 
ghiro

 senza usare la ricorsione?
Spiego sommariamente un algoritmo che potresti usare, ma non ti scrivo il
codice (quello, se vorrai, lo farai tu). 
Innanzitutto, se ogni nodo dell'albero avesse un puntatore al genitore
(parent) potresti attraversare l'albero senza bisogno di mantenere alcuna
struttura dati aggiuntiva.
Affrontiamo prima il problema immaginando che ogni nodo abbia un puntatore
al nodo genitore. In questo caso, l'algoritmo è molto semplice. Ogni volta
che ci spostiamo da un nodo all'altro conosciamo solo  l'indirizzo del nodo
di provenienza (Last) e l'indirizzo del nodo corrent (Curr). Quindi
applichiamo queste regole per decidere il successivo spostamento: 
 se Last == Curr->parent ci spostiamo su Curr-sinistra
 se Last == Curr->sinistra ci spostiamo su Curr->destra
 se Last == Curr->destra ci spostiamo su Curr->parent
a cui aggiungeremo alcune regole speciali per gestire i casi in cui uno o
entrambi i sottoalberi sono vuoti.  
Ora, se i nodi non hanno conoscenza del parent, dobbiamo costruirci uno
stack aggiuntivo che ci permetta di risalire l'albero recuperando
l'indirizzo dei nodi parent.
A questo scopo dovremo predisporre un array (Arr) di puntatori di dimensione
pari alla massima profondità dell'albero, e adattare quindi le regole
descritte.
Assumiamo di avere un indice (Idx), che inizialmente varrà 0. Ogni volta che
andiamo a destra o a sinistra, scriviamo Curr in Arr[Idx] e incrementiamo
Idx. Ogni volta che dobbiamo risalire al parent, decrementiamo Idx e
recuperiamo l'indirizzo del parent da Arr[Idx].
Mi pare non serva altro.
Max

 recuperiamo l'indirizzo del parent da Arr[Idx].
...aggiungerei che, in questo caso, l'OP potrebbe anche cimentarsi a 
definire delle semplici funzioni di gestione di una struttura dati a 
stack (ie. le classiche funzioni push/pop) dove poter memorizzare e 
recuperare questi puntatori con il metodo LIFO. Una volta implementate 
queste, e' poi piu' semplice gestire un albero binario di questo tipo.
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com
Newsgroup: it.comp.lang.c
Titolo: compilatore c/c++

Visto che nessuno ha saputo dirmi dove recuperare quella mal..... libreria,
potreste consigliarmi un qualsiasi altro tipo di compilatore free che posso
trovare in rete? Si intende che sto cercando il meglio in circolazione.
Grazie a tutti!
Noisemaker.


Su 
www.programmazione.it
 (sezione C/C++) ci sono vari links
interessanti, prova a guardare lě. Ciao,
Cecco

 wrote in message
3BBE2368...@tin.it...

Grazie tante.

"Noisemaker" <mick...@NOSPAMlibero.it> writes:

Gcc, naturalmente.  Per "free", cosa intendi, poi?  E` strano che usi
la parola inglese, che e` ambigua (puo` significare sia libero che
gratis) mentre l'italiano ha due parole con significate ben
precise...  Comunque, Gcc e il resto del software del Free Software
Foundation e` "free" in tutti e due sensi della parola.
http://www.fsf.org/software/gcc/gcc.html
-- 
David N. Welton
   Consulting: 
http://www.dedasys.com/
Free Software: 
http://people.debian.org/~davidw/
   Apache Tcl: 
http://tcl.apache.org/
     Personal: 
http://www.efn.org/~davidw/

Newsgroup: it.comp.lang.c
Titolo: esercizio deitel&deitel

Come faccio a modificare questo programma in modo che calcoli l'interesse
composto utilizzando solo degli interi?
-------------------------
#include <stdio.h>
#include <math.h>
main()
{
        int year;
        double amount, principal = 1000.0, rate = .05;
        printf("%4s%21s\n", "Year", "Amount on deposit");
        for (year = 1; year <= 10; year++) {
                amount = principal * pow(1.0 + rate, year);
                printf("%4d%21.2f\n", year, amount);
        }
        printf("\n");
        return 0;
}

behemoth wrote:
...


 > composto utilizzando solo degli interi?
innanzitutto la sintassi del primo print è sbagliata, e di year stampi
un valore sporco; poi spiegaci cos'è l'interesse composto cosi ti
aiutiamo.
ciao.
PS: che è deitel?

 PS: che è deitel?
Sono i due autori del libro "C Corso completo di programmazione".

Newsgroup: it.comp.lang.c
Titolo: Convertitori Cobol C o C++

Avete notizia e link di qualche convertitore da Cobol a C o C++
possibilmente per le piattaforma windows e Linux
dovrei convertire un vecchio listato per eseguire un aggiornamento

 dovrei convertire un vecchio listato per eseguire un aggiornamento
non so se va bene per la conversione di vecchi listati penso che se non
faccia uso particolare di librerie dovrebbe andar bene. Se non erro lo
standard supportato è il Cobol-85
Spero di esserti stato utile
By

 Spero di esserti stato utile
grazie
ma tutto quello che si trova su sourgeforge l'ho scaricato.
speravo in qualcos'altro , dato che i prg sono molto vecchiotti.


OpenCOBOL
http://open-cobol.sourceforge.net/
CobCy
http://web.tiscalinet.it/albertosantini/cobcy/
Newsgroup: it.comp.lang.c
Titolo: caratteri ascii in C

Dall'SDK microsoft (sezione sull'ANSI C):
Escape Sequences
The escape sequences allow you to use a sequence of characters to represent
special characters. Escape sequences are listed below.
Sequence
 Name
\a
 Alert (bell)
\b
 Backspace
\f
 Formfeed
\n
 Newline
\r
 Carriage return
\t
 Horizontal tab
\v
 Vertical tab
\?
 Literal quotation mark
\'
 Single quotation mark
\"
 Double quotation mark
\\
 Backslash
\ddd
 ASCII character in octal notation
\xdd
 ASCII character in hex notation
\0
 Null character

Dove posso trovare la lista dei codici Ascii che vengono utilizzati nel C.
O se qualcuno mi può dire come si rappresenta lo spostamento del cursore a
sinistra.(Es.: \n=vai a capo)
Grazie.Andrea.
Newsgroup: it.comp.lang.c
Titolo: Grafica 2D a basso livello con il DJGPP

Come si fa usando il djgpp ad accedere alla memoria video (all'indirizzo
0x0a000) senza che il programma si blocchi???
Per attivare la modalità video 320x200x256 uso le seguenti istruzioni
assembler
mov ax,0x13
int 0x10
Grazie

 0x0a000) senza che il programma si blocchi???
http://www.delorie.com/djgpp/doc/
http://www.castle.net/~avly/djgfx.html
	- DJGPP V2 Quick Graphic Programming
Guide

 blocchi???
  Dai un'occhiata ai sorgenti della libreria GRX, distribuita
liberamente insieme al DJGPP.
	Alla prossima,
		Marco

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

Devo scrivere un programma in fortran per la mia tesi. C'è mica qualcuno che
mi sa dire dove posso trovare un compilatore Fortran?
Vi prego è questione di laurea o non laurea!!
Grazie
Teo

 Vi prego è questione di laurea o non laurea!!
  Il compilatore gcc ha un front-end per tradurre il FORTRAN in C e poi
compilarlo (o qualcosa del genere). Si dovrebbe chiamare g77. 
	Alla prossima,
		Marco
PS Inutile aggiungere che questo e` un newsgroup in cui si parla *solo*
del linguaggio C. ;)

Vi prego è questione di laurea o non laurea!!
Nel pacchetto del GNU C Compiler della Free Software Foundation c'e'
il compilatore g77 (credo si chiami cosi').
Trovi informazioni alla pagina 
www.delorie.com
 se ti interessa per
MS-DOS.
Newsgroup: it.comp.lang.c
Titolo: Problema con l'ape SetFileDateTime

specie di bug conosciuto?
Riassumendo: eh si`, conosciutissimo, ma legato al filesystem
che usi (e in esso impossibile da risolvere) e non alle API o ad
altri strumenti di programmazione che puoi usare per lavorarci.
Sparira` se e quando upgraderai a Windows/NT con NTFS, o
altro sistema operativo e filesystem degni di questo nome, al
posto dei vari Dos/Win, Win95, Win98 [supponendo che il bug
sia anche sul filesystem FAT32], e via spataccando...!
Alex

sia anche sul filesystem FAT32], e via spataccando...!
Su Fat32 il problema non esiste piu'
P.es., dalle proprieta' di due file:
sabato 27 dicembre 1997 19.01.57
lunedě 26 giugno 1995 5.30.00
Followup: it.comp.prog
Cordialita'
Mario Benvenuti
--
e-mail: 
mar...@isa.it
http://www.isa.it/computerville/
http://pgp5.ai.mit.edu:11371/pks/lookup?op=get&search=0x21C696DC
Fingerprint: 32 DF 25 44 B6 D8 DC 1F 3A 38 7F E8 A3 B6 C2 32 21 C6 96 DC

problema della dll a cui si riferisce l'ape?
Pari e` quel che si puo` settare anche in filesystem FAT16,
mi sembra.  Forse e` questione di "numero di secondi che
sono trascorsi da una certa data/ora di riferimento".  Prova
comunque se riesci a settare per diversi file nello stesso
folder vari tempi che differiscono di un secondo, tipo (any
ora e minuto) :00, :01,:02, :03, e cosi` via, quella e` la
prova del fuoco.
Comunque, e` possibilissimo che una libreria fatta per andare
su sistemi a 16 bit tronchi lei stessa il bit meno significativo
(anzi, deve, se funziona su di una emulazione di DOS, perche`
la relativa funzione dell'int 21h del DOS non prevede l'ultimo
bit, quello che puo` rendere dispari i secondi).  In questo caso,
la soluzione e` di passare a sistemi di sviluppo integralmente
a 32 bit (oltre che a filesystem adeguati, cioe` NON Fat16).
Alex

fat16 (ie: IO!!!)
Anche Win98 supporta la Fat16 (hey, persino Win/NT 5.0 la
supporta!!!) -- non ce la toglieremo mai di torno... evidentemente
la gente AMA buttare via grosse fette del suo spazio disco per
usare i cluster giganteschi che la Fat16 impone sui grandi dischi
di oggi, avere solo secondi pari nelle ore dei file, ecc ecc!-)
Il tuo programma non puo` farci assolutamente niente quindi ti
consiglio di limitarti a documentare la cosa come limitazione
del sistema, consigliando agli utenti di passare a un filesystem
decente (_almeno_ Fat32, che e` semi-decente, se non NTFS
che e` decisamente meglio) -- naturalmente, dovrai prima fare
un test del tuo sistema su di una macchina con filesystem
semi-adeguato per potere asserire che li` funziona bene.
Alex
Newsgroup: it.comp.lang.c
Titolo: Cast di un puntatore

Salve, riguardo il C per ambienti embedded (pic)
Ho visto un (ex)collega che faceva il cast dei puntatori ad interi:
(char*)&intero
In modo da mettere in una struttura sempre dati char.
 (char*)&intero,&char
Il tutto funziona!
Non capisco come mai, perchč se l'indirizzo di una variabile int richiede un 
puntatore di tipo int ... quello ci va, e se faccio il cast non rischio di 
perdere qualcosa di importante? Perchč funziona? 

 perdere qualcosa di importante? Perchè funziona? 
Non ho capito qual è il tuo dubbio. Fare il cast a (char*) non ti 
dovrebbe dare nessun problema. Semmai il cast da (char *) a (int *) 
potrebbe creare problemi di allineamento.
E.

 problemi di allineamento.
Non capisco: in pratic se il puntatore ad un int occupa un int ... se lo 
"casto" su un char non perdo 8bit (msb) ?
Come fa a funzionare senza gli 8 bit superiori? Se non servono perchč non 
dichiaralo subito char, invece che dichiaralo int e poi "castRarlo" ? 

 dichiaralo subito char, invece che dichiaralo int e poi "castRarlo" ? 
Sono io che non  capisco.  Tu pensi che un puntatore a int occupi piu' 
spazio di un puntatore a char ? E  perche'  mai ? I puntatori servono a 
contenere riferimenti alla  posizione dei dati nello  spazio di memoria 
del processo.  Non ai dati stessi (cioe' al loro valore).  Il principale 
punto in cui gioca un ruolo il  cast di un puntatore non e'  nel 
permettere di indirizzare piu'  o meno memoria ma piuttosto nel dare le 
informazioni giuste su come deve essere interpretata l'  aritmetica dei 
puntatori.
Giorgio

 Non capisco: in pratic se il puntatore ad un int occupa un int
No, un puntatore a un int occupa sizeof(int*) e un puntatore a un char
occupa sizeof(char*) ed accade che sizeof(int*) == sizeof(char*).
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 occupa sizeof(char*) ed accade che sizeof(int*) == sizeof(char*).
e normalmente e' 4 in un sistema a 32bit, 8 in uno a 64bit, ecc.
Ciao Jack
-- 
http://motoko.dyndns.org
http://jack471.labrute.fr

 puntatori.
Mi hai convinto, grazie mille
Newsgroup: it.comp.lang.c
Titolo: Onorare i puntatori a funzione

Ciao,
Ho una domanda un po' 'particolare' da fare riguardo i puntatori a funzione.
Data una dichiarazione di questo genere:
char *(*(*pfunc)())[2]();
non riesco a capire successivamente come faccio a definire una funzione che *onori* la dichiarazione. 
Considerato questo codice di esempio:
<code>
char *(*(*pfunc)())[2]();
//pointer to function returning pointer to array [2] of function
//returning pointer to char
char *stringa = "Axel";
char *func1(void) { return stringa; }
char *func2(void) { return stringa; }
void *farr[2] = { func1, func2 };
void* func(void)
{
    return farr;
}
int main()
{
    pfunc = func;
    return 0;
}
</code>
Perche' non vuole compilare? :)
Grazie a  tutti.
Ciao,
 Alessandro.

 //returning pointer to char
Se fossi in te cercherei un compilatore che permette di dichiarare variabile
di tipo arry composte da elementi di tipo funzione :-)
La dichiarazione del tuo puntatore va contro le regole del linguaggio. Puoi
avere un vettore di puntatori a funzioni, ma non un vettore di funzione.
Ciao.

 > //returning pointer to char
Non e' possibile dichiarare un vettore di funzioni, e' possibile invece
dichiarare un vettore di puntatori a funzione:
char *(*(*(*pfunc)())[2])();
--------------------------------
Inviato via 
http://usenet.libero.it

 
Fatto sta che comunque il compilatore non fa' una grinza quando
incontra quella dichiarazione! :)
Comunque se ho capito, alla fine bastava aggiungere un livello di
indirezione in piů.
Grazie, ciao.

 
Contro le regole del linguaggio forse, ma non contro quelle del GNU-c
che non fa' una grinza quando incontra quella dichiarazione! :)
Grazie, ciao.

 incontra quella dichiarazione! :)
Dipende da come il compilatore interpreta le cose: evidentemente il tuo
compilatore traduce implicitamente il riferimento alla funzione come
puntatore alla funzione. Sta di fatto che, in C, quella sintassi non e'
ammessa.

Newsgroup: it.comp.lang.c
Titolo: processi "figli" creati da fork()

Devo creare n figli da un processo padre, evitando che i fligli generino a
loro volta dei figli...
puň funzionare cosě ?
for (i=0;i < N;i++){
  if((i=fork()) != 0)
                i = fork();
}
ciao
NIck
--
-----------------------------------------------------------
E-Mail    : 
nic...@nsoft.it
URL       : 
http://www.geocities.com/blues_nick/
ICQ       : 26032113
-----------------------------------------------------------

 }
Penso di no..... non capisco perchč assegni il risultato della fork alla
variabile del ciclo for
La fork restituisce al padre, il PID del processo creato e al figlio 0, un
valore <0 se ci sono stati errori nella fork stessa
Io avrei fatto cosě (non considerando il caso d'errore della fork ):
-------------
i=0
while (i < N){
   if(fork() == 0){
      // codice eseguito dal figlio.........
      i=N;  // non necessario se nel codice precedente hai usato una exec()
o simili
   }
   else{
      // codice eseguito dal padre (niente se vuoi continuare nel ciclo
while)
   }
}
------------
Oppure "forse" puoi continuare ad usare il ciclo for ed inserire un break;
nel codice eseguito dal figlio
-------------
for (i=0;i < N;i++){
   if(fork() == 0){
      // codice eseguito dal figlio.........
      break;  // non necessario se nel codice precedente hai usato una
exec() o simili
   }
   else{
      // codice eseguito dal padre (niente se vuoi continuare nel ciclo
while)
   }
}
------------
Sono quasi nuovo qui, ed ho sempre il timore di scrivere delle castronerie
Vi prego di perdonarmi ora ed in futuro se scrivo ca##ate
Spero di non aver sbagliato............ attendo korrezzioni
______________________________________________________
Togliete NoSpaM per rispondermi
bye Brain

 }
Non credo proprio.  Prova:
int new_process;
if ((new_process = fork()) < 0) {
  perror("fork"); /* fork error */
} else if (new_process == 0) {
  /* child */
} else {
  /* parent */
}
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Newsgroup: it.comp.lang.c
Titolo: Newbie help compilatore

Sono un neofita e ho scaricato alcuni corsi/tutorial da vari siti per
fare un po' di esperimenti ma una volta cominciato a fare qualcosina
la mia buona volonta' si e' scontrata con il compilatore, ho scaricato
lcc-win32 ma quando provo a compilare qualcosina mi salta sempre fuori
qualche errore non c'e' qualche sito o tutorial (in italiano) che mi
aiuti un po' a capire dove sbaglio.
Ciao e grazie.
-- 
OrsoBruno  

 ha scritto nel messaggio
news:kqentukcf2vavlos5...@4ax.com...

io uso lcc, dimmi quale errore ti da, magari posso darti una mano (se
preferisci mandami un'email)

 wrote in message
kqentukcf2vavlos5...@4ax.com...

Anche io uso Lcc-Win32, forse ti posso aiutare!

 OrsoBruno
Newsgroup: it.comp.lang.c
Titolo: [OT?] Attesa in millisecondi

Chiedo scusa se sono OT o se ripeto una domanda già fatta.
Volevo sapere come fare per generare una pausa non espressa
in secondi (quindi non con sleep()) ma in millisecondi.
Come compilatore uso Turbo C 2.01 (windows xp). Uso questo
al posto al posto di Microsoft Visual C++ perché mi servono
le funzioni sound() e nosound().
Ho provato ad usare la funzione clock(), con questo codice,
preso dalla Guida in linea:
void msec( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}
richiamando poi la funzione con msec((clock_t)3 * CLOCKS_PER_SEC/1000);
Il risultato è però molto impreciso (e stranamente l'errore è
più piccolo se compilo col turbo c).
Ho provato anche con questo pezzo di codice:
void wait(short msec)
{
short goal;
struct timeb tstruct;
ftime( &tstruct );
goal=msec+tstruct.millitm;
if(goal>1000) goal=goal-1000;
while(goal!=tstruct.millitm) ftime(&tstruct);
}
questo però non funge in quanto tstruct.millitm varia 'a scatti',
come ho potuto verificare con:
for(j=0;j<1000;j++)
	for(i=0;i<1000;i++)
	{
	ftime( &tstruct );
	printf("%u\n", tstruct.millitm );
	}
Come output mi da tipo 26120 volte il numero 265 e poi passa a
281, senza fare i millisecondi intermedi. Ho pensato potesse essere
causato da windows (e dall'uso della cpu da parte degli altri processi)
ma poi, provando lo stesso eseguibile da dos, ho ottenuto risultati
analoghi.
La domanda quindi è: dove trovo una funzione che mi permetta di
generare con buona precisione un'attesa di n millisecondi (o anche
più breve, possibilmente)?
Ciao e grazie (e scusatemi se mi sono dilungato)

 ...
Piuttosto vecchio, non credo abbia usleep.

Newsgroup: it.comp.lang.c
Titolo: inviare dati alla seriale

è possibile spedire dei dati desiderati sulla porta seriale (o
parallala) del proprio pc utilizzando il linguaggio di programmazione
c? E' possibile entrare in conflitto con il sistema operativo?

c? E' possibile entrare in conflitto con il sistema operativo?
Dipende dal tuo sistema operativo. In Windows usi la CreateFile e
le  API correlate senza problemi.

Per quanto riguarda Linux, invece puoi andare su due diverse strade:
o scrivi come fosse un file normale, sul device che ti interessa,
oppure usi la ioperm (man ioperm) e tutte le funzioni associate tpo
inb() outb() etc...

Newsgroup: it.comp.lang.c
Titolo: dubbio su free()

Salve a tutti.
Come da subject avrei un piccolissimo dubbio sull'utilizzo di free.
utilizzando un array di puntatori a strutture del tipo
struct mia_struttura **pts
correttamente allocato
e' piu' corretto eseguire un:
for (i=0;i<DIM_MAX;++i)
    free(pts(i));
free(pts);
o e' sufficiente eseguire
free(pts);
TNKS in anticipo.
--
   LUNIVERSONONEUSERFRIENDLY
+-----------------------------+
|  
pugg...@labinf2.unica.it
  |
|     
kill...@yahoo.it
      |
|    
kill...@supereva.it
     |
+-----------------------------+

free(pts);
for ( i = 0 ; i < DIM_MAX ; i++ )
    free( ptr[i] ) ;
free( pts ) ;
Questa e' la versione corretta.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
--------------------------------------------------------------
"Partire e' un po' morire e morire e' partire un po' troppo !"
--------------------------------------------------------------

 free(pts);
Ovviamente prima devi deallocare i singoli puntatori e alla fine l'array
(se allocato dinamicamente anch'esso). Comunque devi utilizzare le
parentesi quadre:
free(pts[i]);
EMG

Newsgroup: it.comp.lang.c
Titolo: Tool per indentazione in C

ciao a tutti,
volevo chiedervi se esiste un tool (possibilmente free) per l'indentazione
di codice C, visto che utilizzo un semplice editor di testo (dovendo
lavorare direttamente su un server remoto) che non ha queste funzioni.
grazie


http://www.kyuzz.org/antirez
finger 
ant...@tella.alicom.com
 for PGP key
28 52 F5 4A 49 65 34 29 - 1D 1B F6 DA 24 C7 12 BF


ma funziona sotto Windows?
il formato mi sembra piů di un file linux?
grazie
Newsgroup: it.comp.lang.c
Titolo: Formattazione stringa

ho un programma, compilato con Mingw, che copia
il contenuto della clipboard di Xp, e la salva in un file.txt.
Quando apro questo file, noto che i caratteri di tabulazione
\r, \n, \t, non sono rispettati. Come posso fare per salvare
nel file il contenuto della clipboard rispettando le tabulazioni?
Si accettano  idee.
Vi ringrazio.

 Si accettano idee.
Spiega che intendi con "notare che i caratteri non sono rispettati", i 
caratteri ci sono e il programma che usi per aprire il file prodotto non 
li mostra correttamente o il programma compilato con mingw ha prodotto 
male il file?
Mostra il codice, mostra un estratto del contenuto del file in 
esadecimale.


I caratteri '\n' e '\r' ci dovrebbero essere se quando apri il file 
rispetta le righe originali.
Le tabulazioni vengono invece sostituite dagli spazi come le vedi. 
Nella clipboard viene salvato quello che è visibile sullo schermo e le 
tabulazioni vengono trasformate in un numero di spazi sufficiente per 
raggiungere il 'tab stop' preimpostato.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 rispetta le righe originali.
 i \r o \n non venono rispettati perche il trsto viene scritto tutto sulla 
stessa
riga.
Ciao

 esadecimale.
il testo viene scritto nel file senza andare a capo ci sono gli spazi ma
sono sulla
stessa linea. Il programma legge la clip e scrive in un file in append con
fprintf %s.
Ciao

lancio il programma da cli, e stamapato anche a video
ed e tabulato, ma lo stesso tetso scritto nle file non rispetta
le tabulazioni. E  il testo copiato ma su una stessa  riga.
Ciao


Mi sembra strano.  Quando si fa il past le righe vengono riprodotte 
correttamente.


lancio il programma da cli, e stampato anche a video,
ed e tabulato, ma lo stesso testo scritto nel file, non rispetta
le tabulazioni. E  lo stesso testo copiato, ma sta su una sola riga.
Ciao


cambia programa per visualizzare il file.
Ciao Jack

 Ciao Jack
cio�? utilizzo wordpad non blocconote.
quando faccio un copia incolla senza utilizzare questo
programma salvo in wordpad, il testo e formattato.
Ciao