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

Ciao!
Vengo da un altro linguaggio avrei bisogno di un paio di dritte sulle
stringhe:
1) E' piu' efficiente a livello temporale/CPU (non di memoria) memorizzare
le stringhe come "char stringa[]" o come "char* stringa"?
2) E' piu' efficiente a livello temporale/CPU (non di memoria) allocare
stringhe sullo heap o sullo stack?
3) Se avete una stringa (array di char o char*) che durante l'esecuzione
del programma deve essere modificata ossia deve le si deve assegnare un
nuovo valore, come fate? Fate un strcpy del nuovo valore nella vecchia
stringa?
4) Esiste una funzione che data una stringa A e due interi I e F ritorni
la sottostringa di A che parte dalla posizione I e finisce alla F?
Altrimenti, come implementereste una tale funzione?
Vi ringrazio molto!

 Altrimenti, come implementereste una tale funzione?
Vai al caratteri I-esimo e copi F-I caratteri nella nuova stringa
(magari facendo gli opportuni controlli).
Luca
-- 
Home: 
http://kronoz.cjb.net
"I've seen things you people wouldn't believe...
 Attack Ships on fire off the shores of Orion.
 I've watched C-beams glitter in the dark off of Tanhauser Gate.
 All those moments will be lost in time...like tears, in rain.
 Time to die." -- Roy Batty (played by Rutger Hauer)

(magari facendo gli opportuni controlli).
Quindi non esiste una funzione di libreria (anche non standard) che la
implementa? In generale, ci sono altre librerie (oltre a quelle
standard) che sono considerate utili e vengono usate "normalmente"?
Qualche link a collezioni di librerie?
-- 
Il Prof.

 standard) che sono considerate utili e vengono usate "normalmente"?
POSIX (e` un superset dell'ISO C), se lavori sotto un OS che lo supporta.
http://www.unix.org/version3/online.html
 (richiede una registrazione
gratuita).
Luca
-- 
Home: 
http://kronoz.cjb.net
"Sei l'unica donna della mia vita".
(Adamo)
Newsgroup: it.comp.lang.c
Titolo: Ciao a tutti- AIUTO

Ciao ragazzi, 
sono un ragazzo che sta studiando Java.
Vorrei chiedervi di indirizzarmi ad un tutorial scaricabile o, meglio,
un e-book in .pdf, come Thinking in C++ di Eckel, tanto per
intenderci, che possa aiutarmi a imparare il linguaggio che voi
conoscete e studiate.
grazie in anticipo
Andrea

Vai sul sito 
http://digilander.iol.it/carmageddon1/
 alla sezione link
troverai quello che cerchi.
Già che ci sei dai anche un occhiata al sito.
Ciao by Carma.



Grazie mille. Guardando il sito ho anche scoperto che tifi la mia
stessa squadra!!! :))


Dello stesso autore: 'Thinking in Java'
http://ftp.unina.it/pub/docs/eckel/

>Dello stesso autore: 'Thinking in Java'
Io intendevo un libro su C. "Thinking in Java" e' stato, e' e sara' la
mia guida per Java, senza alcun dubbio...
Grazie istess :)

 mia guida per Java, senza alcun dubbio...
Beh, esiste anche Thinking in C (è un CD, se non erro). Mi pare sia di
un amico di Bruce Eckel.
EMG

un amico di Bruce Eckel.
Credo che non sia esattamente un tutorial, ma non ne sono sicuro,
quanto materiale destinato a chi vuol passare da C a C++.
Andrea Laforgia (andrea_...@XXXbigfoot.com)
------------------------------------------------
Il mio indirizzo di posta elettronica è inattivo 
per il momento.

 quanto materiale destinato a chi vuol passare da C a C++.
Boh, il titolo esatto mi sembra sia Thinking in C - Foundations for C++
and Java e quindi sembrerebbe parlare delle basi C utili ad entrambi i
linguaggi.
EMG
Newsgroup: it.comp.lang.c
Titolo: Aiuti on line tra amici con lo stesso interesse

Ho pensato che se le persone interessate all'argomento dell'NG si
scambiassero il proprio  ICQ number  si potrebbe creare una rete di persone
interessate allo linguaggio di programmazione per scambiarsi aiuti on line
quando si è in rete.
Che ne pensate?
Il mio ICQ n. è   92 203 759

 ha scritto nel messaggio
news:8TUid.19135$Ni.6...@twister1.libero.it...


 Il mio ICQ n. č   92 203 759
Che ci sono gia' vari canali che riguardano il C su IRC, fatti apposta 
(tra cui, #c su IRCNet). Mi pare un'idea poco pratica quella che tu proponi.
-- 
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

 > Il mio ICQ n. è   92 203 759


 Ma poi tale chan #c su ircnet č in italiano?
Puoi documentarti su IRC facilmente online, e su cos'e' IRCNet pure 
(anche se consiglio altre reti - meno lamer e piu' gente seria). Cmq 
si', puoi fare tutto quello che hai detto. Non ricordo se #c e' in 
italiano (cmq, consiglio personale: imparare i rudimenti di inglese e' 
sempre utile quando si studia informatica; diro' di piu' - e' tanto piu' 
utile quanto piu' si va avanti), cmq, se non lo fosse, posso assicurarti 
"ad intuito" che ci sara' un qualche canale che tratta del C in italiano 
(#c-it, o qualcosa del genere...).
PS: si risponde sempre _sotto_ il testo quotato.


 > Ma poi tale chan #c su ircnet è in italiano?


 documentarmi su Ircnet!
... stai scherzando su entrambe le affermazioni, vero? :P


 ha scritto nel messaggio
news:cmu62v$5g6$1...@le1.cs.unibo.it...

Newsgroup: it.comp.lang.c
Titolo: pilotare le casse da c

stanco dei soliti rumorini striduli prodotti dal pc tramite appositi
comandi sound(&#8230;);delay(&#8230;);nosound(&#8230;), avrei piacere
se possibile di fare qualcosa di più carino con le casse tramite
scheda audio. Per questo vi chiedo in ordine di difficoltà se mi
potete indicare come si fa per (oppure indicarmi dei link in rete):
-far suonare alle casse delle note a frequenze, volume e lunghezze
desiderate, arricchendone il contenuto anche con opportune armoniche,
in modo da produrre dei suoni dal timbro tipico degli strumenti
desiderati (alla fine si dovrebbe trattare di una somma oppurtuna di
sinusoidi, ma mentre per la composizione mi arrangerei in qualche
maniera anche da solo, vorrei sapere come fare a dirlo alle casse che
devono suonare quella particolare nota) -riprodurre dei file musicali
dai .mid ai .wav, agli .mp3, perché no ai cd musicali (che mi sembra
siano in formato .mwa). Spero di non aver chiesto la luna, ma cavolo
se ce la fa windows perché non ce la dovrei fare io?

donnapibic wrote:

Penso tu sia leggermente OT, comunque credo che dovresti chiedere aiuto a
google, magari cercando librerie già implementate che facciano al caso tuo.

 google, magari cercando librerie già implementate che facciano al caso tuo.
in particolare, siccome la gestione dei suoni non e' standard, dovresti
rivolgerti ad un gruppo relativo al tuo sistemaoperativo/compilatore.
Per esempio
it.comp.programmare.win32
ciao,
g.


Devi cercare una libreria che fornisca questi servizi sottoforma di API 
C e questo dipende dalla piattaforma e OS che vuoi utilizzare.
C'e' questa libreria C:
http://www.libsdl.org/intro.it/toc.html
Che ha il vantaggio di essere multipiattaforma.
Per altri consigli devi chiedere a NG piu' specifico.
Ciao,
Cesare
Newsgroup: it.comp.lang.c
Titolo: seriale

Sto cercando di realizzare un programma
per trasmettere dei file tra 2 computer tramite cavo
seriale.
Ho gia realizzato una chat molto rudimentale ma funzionante,
solo che con lo stesso metodo non riesco a spedire i file.
Penso che il problema stia nel controllo della seriale in trasmissione,
cioe' non so come controllare quando la porta e' pronta per spedire un
nuovo dato e quindi i dati si sovvrascrivono,
Sapete dirmi quale registro devo controllare per sapere quando la
seriale e' pronta a spedire un nuovo byte?
Io ho uno schema in un libro("Programmazione avanzata in C" di Peter Norton)
ma non spiega il significato dei vari registri.
Sapete dove posso trovare in rete informazioni sulla seriale e sui
protocolli
di trasmissione seriali?
Possibilmente anche degli esempi sempre in rete o
se qualcuno me li volesse mandare via mail(forse sto esagerando).
Una precisazione:non sono un esperto(si era gia' capito vero?)
e programmo sotto dos (purtroppo non ho ancora avuto il tempo di
studiare la programmazione sotto W95).
Avendo anche Linux installato(da poco),non e' che c'e' qualche programma
che fa al caso mio e di cui potrei studiare il codice?
A proposito di Linux,esistono informazioni in ITALIANO sul compilatore
e sulle librerie(cosi mollo il dos).
Grazie
Bi...@tin.it

seriale.
Il primo metodo ( il piu' semplice ed ioltretutto quello che puoi
realizza sui piu' diversi sistemi operativi e/o picci ) è quello di
lanciare due emultatiori di terminale sui pc e trasferire i dati con i
protocolli opportuni ( es zmodem ).
Altrimenti ti consiglio Interlink ( per il dos ).  Per Windows95 c'è
l'utility connessione diretta. Per Linux ... C'è solo l'imbarazzion
della scelta ( forse è un po' meno intuitivo, ma senz'altro piu'
flessibile : bisogna tirar su in connessione ppp e montarci sopra nfs
.. Insomma
man pppd
man nfs
un buon caffe
tanta ma tanta pazienza ... )
Newsgroup: it.comp.lang.c
Titolo: leggere memoria

ciao a tutti,sto'scrivendo un programma sotto linux che mi deve leggere uno 
spazio di memoria condivisa e mettermelo in un file.
Io so da dove deve partire la lettura della memoria,so'che devo leggere 105 
caratteri e so che in memoria ci sono dei char.
Come faccio a tirarlo fuori dalla memoria condivisa?
Che funzione uso?
Grazie 

 ciao a tutti,sto'scrivendo un programma sotto linux che mi deve leggere uno 
Quindi: it.comp.os.linux.development (se non ricordo male il nome del 
newsgroup). Il C standard non sa nulla di memoria condivisa (almeno 
credo! ^_^).
PS: a parte qualunque cosa possa significare 'in memoria ci sono dei 
char', il vantaggio della memoria condivisa e' che la tratti come 
memoria normale. Quindi, ti serve solo aritmetica dei puntatori. No, 
questo non significa che puoi continuare lo thread qui, passa sull'ng 
che ti ho consigliato ;-)
-- 
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

> questo non significa che puoi continuare lo thread qui, passa sull'ng 
_il_ thread :)
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|

Credo che tu possa utilizzare le system calls di IPC V ( Interprocess
communication) messe a disposizione dal Kernel Linux. 
In particolare dovresti usare le seguenti funzioni:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, int size, int shmflg);
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmdt(const void *shmaddr);
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
IPC_STAT
IPC_SET
IPC_RMID
struct shmid_ds;
shmget(...) consente di creare una nuona zona di memoria condivisa.
Restituisce l'id della zona di memoria.
shmat(...) permette ad un processo di legarsi ad una shared memory
usando l'id restituito da shmget(...). Restituisce il puntatore alla
zona di memoria condivisa.
shmdt(...) "stacca" un processo dalla memoria condivisa. Prende in
input il puntatore restituito da shmat(...).
Ciao.


----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com
 The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= East/West-Coast Server Farms - Total Privacy via Encryption =---

...

Newsgroup: it.comp.lang.c
Titolo: win sockets

Salve a tutti,
sto avendo i miei primi approcci con il C ed avendo armai studiato la
struttura del linguaggio vorrei provare a sfuttarlo sulle API di windows.
In particolare la mia attenzione va al winsock2 (anche la v.1.1 non mi
dispiace...), ma dopo prove e riprove non sono riuscito a far nulla....
Qualcuno potrebbe dirmi la sequenza delle funzioni da utilizzare, come
utilizzarle, eccetera eccetera?
E se questo fosse troppo dispendioso da parte vostra, potreste darmi un
riferimento per scaricare gratuitamente un tutorial sull'uso di questi
benedetti sockets? Basterebbe anche un piccolo esempio...
Ringrazio tutti in anticipo.
Saluti.

   ------------------------------------------------------------------------

Non so come funziona WinSock2 di Windows,io utilizzo i socket su digital
unix,ma penso piu' o meno che siano uguali.
La prima cosa da fare e' creare un socket con la funzione "socket",
dopo di che occorre eseguire la funzione "bind" per dare l'indirizzo al
socket(facoltativo per un socket client).
Dopo di che se si sta creando un socket client occore fare una connect,al
socket server con la funzione "connect",altrimenti se il socket e' un socket
server occorrera' eseguire una funzione "listen" per mettere il socket in
ascolto di connessioni e una funzione "accept" per accettare connessioni da
client, il resto....... vien da se :)
Occhio alle strutture e al formato degli indirizzi e delle porte.
Ivan Molella
--
Posted from 
mta14-acc.tin.it
 [212.216.176.45]
via Mailgate.ORG Server - 
http://www.mailgate.org

Devi innanzitutto inizializzare il sistema dei socket, con una WSAStartup(),
poi chiamare la socket(), bind(), connect(), ecc.
Se usi VC++ trovi degli esempi già fatti e una bella documentazione.
Purtroppo "spinge" molto cerso MFC, ma puoi farne a meno...
Saresti anche un po' OT, ma forse i socket sono abbastanza generali da
essere discussi.
--
Alessandro Monti

]

Newsgroup: it.comp.lang.c
Titolo: const nelle funzioni

ciao, qualcuno sa dirmi quale è il vantaggio nell'usare CONST nel
passaggio di parametri alle funzioni ? è anche un vantaggio in termini di
performance ?
grazie
giuseppe
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 performance ?
No.


ciao, qualcuno sa dirmi quale è il vantaggio nell'usare CONST nel
passaggio di parametri alle funzioni ? è anche un vantaggio in termini di
performance ?
grazie
giuseppe

Newsgroup: it.comp.lang.c
Titolo: Convertire un char in int

Salve a tutti.
int valore;
printf("Inserisci un valore");
scanf("%d" , valore);
Questo sopra riportato è un piccolo frammento che stà all'interno di un 
ciclo che controlla l'input.
Inserendo una "lettera" per capirci, il ciclo va ad infinito.
Allora ho pensato di dichiarare valore come un char, per evitare il problema 
di prima,  ma non conosco nessuna procedura per convertirlo in intero.
Spero che mi aiutate in questo piccolo problema.
Grazie a tutti.

ciao,
queste funzioni potrebbero fare al caso tuo...
char s[];
atoi(s) // converte la stringa s in un valore intero, restituito in uscita .
Restitutisce 0 se la stringa nn può essere convertita;
atol(s) // converte la stringa s in un valore long, restituito in uscita .
Restitutisce 0 se la stringa nn può essere convertita;
atof(s) // converte la stringa s in un valore intero restituito in uscita .
Restitutisce 0 se la stringa nn può essere convertita;
ciao e buon lavoro....


valore_intero = valore_char - 0x30
in questo modo avrai lo stesso numero solo che e' un intero

 Inserendo una "lettera" per capirci, il ciclo va ad infinito.
  int valore;
  do {
    int test = scanf("%d" , &valore);
    scanf("%*[^\n]");
  } while (!test);
-- 
Horst

 } while (!test);
Correggerei la condizione del loop cosě:
    while (test < 1);
Oppure, meglio ancora:
    while (test != 1);
Come l'hai scritta tu, il loop continua anche nelle condizioni di fine file
o di errore di I/O (nei quali casi scanf ritorna un valore negativo).
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 o di errore di I/O (nei quali casi scanf ritorna un valore negativo).
d'accordo. Grazie...
-- 
Horst
Newsgroup: it.comp.lang.c
Titolo: Intefaccia

E' possibile inserire una intefaccia grafica in un programma C scritto nel
sistema GNUCC?

>>>>> "m" == massimo874  <massi...@NONROMPETEhotmail.com> writes:
    m> E' possibile inserire una intefaccia grafica in un programma C
    m> scritto nel sistema GNUCC?
Non so esattamente cosa intendi per "sistema GNUCC".  Se la
piattaforma e` Unix, hai solo l'imbarazzo della scelta:
- Gtk+ (
www.gtk.org
)
- Qt (
www.trolltech.com
)
- Paragui (
www.paragui.org
)
- Motif (
www.google.com
)
Se invece la piattaforma e` Windows e stai usando cygwin, puoi usare
WxWindows (
http://www.wxwindows.org/
).
ciao,
andrea
--
Andrea Glorioso                   
andrea....@binary-only.com
Binary Only                           
http://www.binary-only.com/
Via A. Zanolini, 7/b                  Tel:        
+39-051-345
.840
40126 Bologna                         Fax:     
+39-051-930
.31.133

Newsgroup: it.comp.lang.c
Titolo: Sempre uguale



Qualcuno mi sa dire perchè
qualsiasi valore inserisco per le tre variabili i j n le funzioni controlloy
e controllox mi restituiscono "sempre" rispettivamente


5875 e 4032? Questo
programma dovrebbe servire per controllare che il numero da inserire non
vada posizionato al difuori di una matrice. In pratica mi serve per il
Quadrato Magico. Sono sicuro che sia una scemità, che però
non riesco a capire :( Il programma è qui sotto. Grazie a tutti.
P.s. Questo controllo è necessario perchè la matrice non
è statica. Di nuovo grazie. DaN


 

#include <stdio.h>


/*fUNZIONE PER CONTROLLARE
CHE IL NUMERO NON SIA INSERITO IN UNA


  RIGA AL DI FUORI
DEL QUADRATO*/


int controlloy(int i,int
n)


{ int x;


  if(i-1<0)


    x=n-1;


   else


    x=i-1;


  return x;


}


/*fUNZIONE PER CONTROLLARE
CHE IL NUMERO NON SIA INSERITO IN UNA COLONNA


  AL DI FUORI DEL
QUADRATO */


int controllox(int j,int
n)


{ int y;


  if(j+1>n-1)


   y=0;


  else


   y=j+1;


  return y;


}


main()


{


 int controllox(int,int);


 int controlloy(int,int);


 int i,j,n;


  printf("INSERISCI
I J ed N SEPARATI DA UNO SPAZIO\n");


  scanf("%d %d
%d", &i, &j, &n);


   j=controllox(j,n);


   i=controlloy(i,n);


  printf("i = %d
, j = %d", &i,&j);


}


                       
N


                       
e


                    
\  M  /


                     
\   /


             
N  e  M   e  S   y


                     
/   \


                    
/  S  \


                       
y



   printf("i = %d , j = %d", &i,&j);
C'è *almeno* questo errore. Devi scrivere
printf("i = %d , j = %d", i,j);
senza gli operatori di address-of.
EMG
Newsgroup: it.comp.lang.c
Titolo: uso di sscanf

Ciao ho il seguente problema:
un file contiene righe del tipo <nome> <numero> dove <nome > è una sequenza
di caratteri alfabetici e spazi.
Uso il seguente codice:
while (fgets(stringa, 80, fileProdottiPtr) != NULL)
 { // continua sino alla fine del file
  sscanf(stringa, "%[A-Z a-z]s %d", nome_prod, &prezzo_unit);
   }
ma la variabile prezzo_unit non viene letta. Come mai? Grazie Maurizio

"Maurizio Montagnuolo" ha scritto
: Ciao ho il seguente problema:
: un file contiene righe del tipo <nome> <numero> dove <nome > è una sequenza
: di caratteri alfabetici e spazi.
: Uso il seguente codice:
:
: while (fgets(stringa, 80, fileProdottiPtr) != NULL)
:  { // continua sino alla fine del file
:   sscanf(stringa, "%[A-Z a-z]s %d", nome_prod, &prezzo_unit);
                             ^^^^^
non ci vuole la s.
   sscanf(stringa, "%[A-Z a-z] %d", nome_prod, &prezzo_unit);
:    }
: ma la variabile prezzo_unit non viene letta. Come mai? Grazie Maurizio
:
:
Prego,
Massimo

Newsgroup: it.comp.lang.c
Titolo: allocaziona dinamica di matricie e SDL (for cingar)

non essere permaloso.... io volevo farti notare che hai detto una
cazzata a quel ragazzo quando dicevi che quando passi una matrice ad
una funzione devi inserire in modo obbligatorio la seconda dimensione
della matrice. O forse ho letto male (vai a leggere il messaggio). é
questo non è vero. Il fatto sulla restituizione di puntatori il
discorso era riferito a quel particolare problema anche se era un modo
di scrivere la stessa cosa. Se sei così bravo scrivi una funzione che
calcoli l'inversa di una matrice utilizzando l'allocazione dinamica di
matrici...
Che la tua azienda utilizzi la libreria SDL non me ne frega niente. Io
volevo una risposta da qualcuno che la sa utilizzare in windows e non
uno che mi viene a dire che nella sua azienda la utlizzano bene. Non
me ne frega un cazzo. se uno scrive vuole un aiuto e non delle
risposte che sono stronzate....

 non essere permaloso.... 
Niente polemiche per cortesia.  Non scrivere messaggi indirizzati a
determinate persone sul gruppo, specie se hai voglia di litigare (c'è la
posta elettronica per queste cose).  
In ogni caso, quando si passa una matrice, intesa come "array di array" e
non come "puntatore a puntatore", a una funzione, è __necessario__
specificare almeno la prima dimensione.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 non essere permaloso.... 
E valeva la pena di iniziare un thread?

 [...]
Peccato che, con i newsgroup via web, non abbia senso rispondere con il
classico "PLONK".
--
Cingar


 classico "PLONK".
quoto.
Newsgroup: it.comp.lang.c
Titolo: Aiuto C * file

Ciao a tutti 
 ho un file costituito da 
Y 01 01 00 00000033 181208 0926 U                
Y 01 01 00 00000039 181208 0908 U                
R 01 01 00 00000034 181208 0847 E
e vorrei leggerlo, NON scrivendo le righe che iniziano con la R
Ho scritto questo semplice programma
#include<stdlib.h>
#include<stdio.h>
int main() {
  FILE *fd;
  char buf[200];
  char *res;
  /* apre il file */
  fd=fopen("TIMBRACP.BKP", "r");
  if( fd==NULL ) {
    perror("Errore in apertura del file");
    exit(1);
  }
  /* legge e stampa ogni riga */
  while(1) {
    res=fgets(buf, 200, fd);
    if( res==NULL )
      break;
     printf("%s", buf);
  }
  /* chiude il file */
  fclose(fd);
  return 0;
}
---
Ma questo mi legge TUTTE le righe
Se sostituisco la riga 
    printf("%s", buf);
con 
if buf[0]!="R"  printf("%s", buf);
il sistema mi da bus error.
So che  e' un errore stupido, ma non lo trovo.
Grazie a chi mi puo' aiutare
                  ALEX

Alessandro Perrone ha scritto:

Non mi pare ci siano errori, a parte il fatto che dopo "if" ci vogliono 
le parentesi tonde. Puoi riportare il codice completo che riproduce 
l'errore?
E.

 E.

 (buf[0]!='R')
GRazie mille per l'aiuto. Erano una oretta che mi scervellavo, e il 
problema erano le parentesi.
Grazie di tutto.
                        ALEX

 l'errore c'e' ed e' piuttosto "subdolo" da scoprire :-)
Hai ragione! Ma perché "BUS ERROR"?
Innanzitutto buf[0]!="R" dovrebbe dare errore in compilazione...
E.

                         ALEX

 E.

 if buf[0]!="R"  printf("%s", buf);
if (buf[0] != 'R') printf("%s", buf);
A parte la mancanza delle parentesi "R" è una stringa di caratteri, 
mentre buf[0] è in carattere.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 Innanzitutto buf[0]!="R" dovrebbe dare errore in compilazione...
gcc da solo un warning
% CFLAGS='-std=c99 -W -Wall -pedantic' make e
cc -std=c99 -W -Wall -pedantic    e.c   -o e
e.c: In function 'main':
e.c:23: warning: comparison between pointer and integer
g++ invece da errore. Lo standard C99 per inciso dice che dovrebbe dare
errore pure, a meno che io non mi sia fumato il cervello o mi sia perso
qualche cast implicito.
-- 
-riko


A questo punto perchè non scrivere:
if (buf[0] != *"R") printf("%s", buf);
:D
Newsgroup: it.comp.lang.c
Titolo: comandi MS-DOS nel codice C

Si possono inglobare all'interno del codice C dei comandi MS-DOS?
Se si come?

 Se si come?
con system(const char*) fai eseguire qualunque comando ti serva
(ossia come rispondere IT a domande OT)

Newsgroup: it.comp.lang.c
Titolo: asm in gcc

Qualcuno mi sà indicare o spiegare come si usa asm inline in mezzo a
codice C?
Vorrei implementare una funzione che cambia il modo grafico.
In ASM Intel è questa:
MOV AH,00H
MOV AL,[Codice modo grafico]
INT 10H
Come si fà per ottenere il modo grafico corrente in ASM intel lo farei
così:
MOV AH,0FH
INT 10H
; In AL trovo il codice del modo grafico corrente.
PS: Uso GCC

 PS: Uso GCC
Il gcc utilizza la sintassi AT&T per l'assembler built-in, che è molto
diversa da quella Intel.
http://skal.planet-d.net/demo/djasm.txt
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Non mi funziona: (può essere perche sono in p-mode?)
void video_CambiaModo (int nmode) {
    asm volatile (
"movb $0x00,%%ah\n"
"movb %0,%%al\n"
"int $0x10"
: // No output
: // Input:
"m" (nmode)
: // Registri modificati
"eax"
    );
}

Microchip wrote:

se sei in modalità protetta, la risposta è sì, non funziona.
È normale, d'altronde gli interrupt del bios sono a 16-bit e non credo siano
eseguibili in un ambiente protetto...
-- 
Blueport Operating System: 
http://www.blueportos.org
daniele_athome

 eseguibili in un ambiente protetto...
il codice a 16 bit in modalità protetta di per se' è eseguibile (basta che
il descrittore del segmento contenente il codice in questione abbia i flag
giusti), solo che appena fai IN o OUT il sistema operativo ti manda in
crash :-)
comunque il problema credo che neanche si ponga: la IDT in modalità
protetta è completamente diversa da quella in modalità reale
(probabilmente i servizi del BIOS in modalità protetta non esistono più,
dipende da come si comporta il sistema operativo).
se si vuole modificare la modalità della scheda video bisogna lavorare in
modalita virtuale 86 oppure interagire con il driver della scheda video.


 eseguibili in un ambiente protetto...
il codice a 16 bit in modalità protetta di per se' è eseguibile (basta che
il descrittore del segmento contenente il codice in questione abbia i flag
giusti), solo che appena fai IN o OUT il sistema operativo ti manda in
crash :-)
comunque il problema credo che neanche si ponga: la IDT in modalità
protetta è completamente diversa da quella in modalità reale
(probabilmente i servizi del BIOS in modalità protetta non esistono più,
dipende da come si comporta il sistema operativo).
se si vuole modificare la modalità della scheda video bisogna lavorare in
modalita virtuale 86 oppure interagire con il driver della scheda video.

Newsgroup: it.comp.lang.c
Titolo: turbo c

Salve qualcuno saprebbe dirmi dove posso scaricare il tc?
Grazie
Ele

 Ele
www.borland.com
 sezione download, area museum. ti devi registrare (gratis)
poi pui scaricarlo. se vuoi te lo mando via email.
ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ del gruppo:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

Se sei cosi' gentile da mandarmelo via mail ti ringrazio tanto.
Ciao
Ele
PS non sono riuscita a mandarti un messaggio, mi da errore nel tuo
indirizzo.Boh!

Newsgroup: it.comp.lang.c
Titolo: Stampa codici a barre in c

    Ciao, dovrei stampare dei codici a barre in c.... lo so che non č una
barzelletta, ma se ci fosse qualcuno che ha giŕ affrontato questo
problema... beh... mi sarebbe di grande aiuto.
    Inoltre, che voiu sappiate, esiste in c una funzione analoga al metodo
.Line (come in Printer.Line) del VB?
    Grazie 10000,
Andrea

problema... beh... mi sarebbe di grande aiuto.
normalmente i codici a barre vengono stampati con stampanti dedicate e
in tal caso il tutto si risolve nell'inviare una stringa apposita alla
stampante e poi alla "traduzione" in barre bianche e nere ci pensa
lei. Non esiste pero' una stringa "universale" nel senso che ogni
costruttore implementa le cose come gli pare :-(
ciao
Andrea

 Andrea
-- 
Posted from  [62.211.175.162] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

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

Salve a tuti,
Sono un programmatore alle prime armi ed ho il seguente problema:
#include <stdio.h>
main()
{
 long double a;
 char c;
 while (scanf("%c%lg", &c, &a) != EOF)
 {
  if (c == 'f' || c == 'F')
printf("%g\n", 1.8 * a + 32);
.............................
Ho il suddetto codice che peró trovo difettoso, perché se inserisco ad
esempio un punto
interrogativo singolo non me lo legge devo per forza inserirne un'altro
consecutivo; peró
vorrei utilizzare l'help con la pressione di un singolo tasto (ad esempio
F1) cioé quando premo
F1 vorrei che mi visualizzasse una determinta schermata. Come devo fare?
Vi rammento che il suddetto codice (come si vede dalla sua struttura) mi
occorre per
catturare un valore numerico ed un valore alfanumerico.
Potete aiutarmi?
Ciao a tutti,
Daniel Fadlun.


Non capisco bene cosa intendi per "inserisco un punto interrogativo non me
lo legge, devo per forza inserirne un altro".
Per quanto riguarda pero' la pressione di un singolo tasto, credo che tu
possa risolte la questione in questo modo:
    #include <conio.h>
    ....
    ....
    carattere = getch();
    if(carattere=='?') {
        ....
        ....
    }
Spero di aver capito la tua necessità. Ricordati che per la funzione getch()
è necessario l'header conio.h
Ciao ciao :-)
estr...@libero.it
estr...@tiscalinet.it
http://web.tiscalinet.it/tempo_libero/index.html
---- Se puo' interessarti, nella sezione programmazione del sito trovi la
traduzione delle funzioni utilizzate per la gestione degli stream di
input-output, quindi per la gestione di file, tastiera, e monitor.

Cioé vorrei che il mio codice alla pressione di F1 mi visualizzi una
schermata di help. Ciao, e grazie.
Newsgroup: it.comp.lang.c
Titolo: sapete come potrei creare un file exe da un file .c?

grazie

sapete come potrei creare un file exe da un file .c?
Ma scherzi o cosa?
Il compilatore secondo te di cosa si occupa? :-)
-- 
Cordiali saluti
  Artemio

 grazie
Devi usare un compilatore C/C++. Leggi le FAQ a 
cpp.programmazione.it
--
ciao,
Cecco
---------
Visit: 
www.sourceforge.net/projects/dlab
Home Page: 
http://dlab.sourceforge.net/
Dlab-developer mailing list
https://lists.sourceforge.net/lists/listinfo/dlab-developer

 ha scritto nel messaggio
news:ma6hfugkpg6mba927...@4ax.com...

Si ho capito ma io non possiedo nessun compilatore, quindi ti chiedo dove
posso scricarne uno gratuito.
grazie.

posso scricarne uno gratuito.
www.bloodshed.net
Il gcc va per la maggiore, puoi cercare anche quello con google.
-- 
Cordiali saluti
  Artemio

Dimenticavo... per il gcc
http://gcc.gnu.org
-- 
Cordiali saluti
  Artemio
Newsgroup: it.comp.lang.c
Titolo: problema con le pipe

Ho un problema: dovrei creare una pipe full duplex sotto unix per far
comunicare due processi (il secondo chiamato con un execl), non so cone
passare gli handle alle pipe al processo figlio chi mi sa dire come fare?
--------------------------------
Inviato via 
http://usenet.iol.it

 passare gli handle alle pipe al processo figlio chi mi sa dire come fare?
Devi usare una named-pipe. 
f/up settato
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La vispa candela bruciava l'erbetta
creando un'essenza alquanto sospetta;
sembrava l'odore di una sacrestia
ma presto mi accorsi che era maria.
Newsgroup: it.comp.lang.c
Titolo: array di caratteri bidimensionali

Ho un problema temo ben noto.
Supponiamo che io voglia definire un array di caratteri bidimensionali,
tipo a[100][20], ma che lo voglia fare dinamicamente.
Se io faccio una cosa del genere:
char *a;
a = (char *) calloc (100, sizeof(char)*20);
la cosa sembra anche funzionare, nel senso che se provo a stampare le
stringhe, con "puts(&a[2])" per esempio, tutto va bene. Se invece io
cerco di fare una cosa del tipo:
char b[20];
strcpy(b,&a[2]);
ho un messaggio d'errore per segmentation fault.
Mi potete spiegare dove sbaglio?
Grazie,
    Stefano

Ovviamente, appena spedito il messaggio ho capito dove sbagliavo... pare
ci sia una correlazione quasi assoluta fra lo scrivere al newsgroup ed
avere delle illuminazioni!
Comunque sbagliavo a contare la posizione di inizio stringa nell'area di
memoria allocata.
    Stefano

 a = (char *) calloc (100, sizeof(char)*20);
Bene che hai risolto. Vorrei farti solo notare che
NON hai definito un array bidimensionale, ma
una monodimensionale.
Ed usando opportuni calcoli lo usi come fosse
bidimensionale.
per poter scrivere a[i][m] dovresti definire a come:
char *a[20];
oppure
char **a;
e fare gli opportuni malloc.
                       Andrea Z.

Newsgroup: it.comp.lang.c
Titolo: Come si passa un array di stringhe ad una funzione?

Sara' una FAQ ma ho speso la giornata a cercare e ho trovato di tutto ma non 
questo ^__^;
In testa al programma ho definito alcuni array di stringhe, ad esempio
const char *comandi[] = {"assign", "assign_all", "exit", "initialize", 
"set", "set_channel", "set_speed"};
Pensavo di passare uno di questi array ad una funzione
myfunc(char **array_stringhe)
chiamandola con
myfunc(comandi);
ma il gcc mi risponde sconsolato "passing arg 1 ... from incompatible 
pointer type". Non riesco proprio a capire che tipo di puntatore dovrei 
passargli... un aiutino?
Thx,
Pleg 

passargli... un aiutino?
L'argomento dev'essere:
  const char** 
e non solo:
 
  char** 
Esempio:
#include <stdio.h>
const char *cmd[] = {"hello", "byebye", 0};
void func(const char **cmd) {
     const char **start=cmd;
     while (*cmd) {
           printf("cmd[%d] = \"%s\"\n", cmd-start, *cmd);
           cmd++;
     }
}
int main()
{
    func(cmd);
    return 0;
}

  char**
Ok grazie!
Pleg

           cmd++;
grazie
Ciao

a 1 *
in tutti i casi, meno che nell'ultimo, ovvero quando cmd punta
all'ultimo puntatore a caratteri che vale 0. Quel 0 usato nell'array č
un valore sentinella, messo lě apposta per denotare la fine degli
elementi, senza passare alla funzione il loro numero.
Newsgroup: it.comp.lang.c
Titolo: conversione stringa -> intero

se leggo un token da un file con
strtok(s1, marker);
e questo token è un numero come lo converto in un int?
ho provato con atoi ma non accetta puntatori come parametri
-- 
Daniele
==============
POTERE E POTENZA!
(saluto evroniano)
ICQ: 106349465 nick: grifter
-togliere NOSPAM per le risposte-

 ho provato con atoi ma non accetta puntatori come parametri
come no? il prototipo di atoi e' questo:
int atoi(const char *s);
dovresti fare circa cosi':
char * p;
int val;
...
p = strtok(s1, marker);
if( p && isdigit( *p ) )  val = atoi( p );
else                      val = 0; // token finiti o non numerici
ciao
donCiccio

 cuttttt
Ma atoi() non e´ standard.
Maurus


Mi correggo scusate :
era itoa() a non essere standard.
Maurus
Newsgroup: it.comp.lang.c
Titolo: coda circolare

Ciao ragazzi,
scusate l'impedimento, potreste spiegarmi come funziona una coda circolare?
non mi è chiaro per niente..
in particolare quando c'è da mettere in coda un elemento,
non ho ben capito che significa l'incremento della variabile che indica il
"fondo" e successivamente l'assegnamento alla stessa variabile il valore
fondo%dimensionecoda-1..
grazie, ciao!


utilizzando un array di dimensione N, come struttura dati per la coda
circolare avremo che utilizzando due variabili di nome primo ed ultimo per
indicare il primo ed ultimo elemento della coda - si puo' assegnare
inizialmente
primo=ultimo=0; che indica la condizione di coda vuota ... nell'inserimento
ultimo viene "incrementato di uno"   ultimo=(ultimo+1)%N ma in modulo N
.. nella eliminazione di un elemento primo viene incrementato di uno...
tieni presente che gli array hanno come primo elemento quello individuato
dall'indice 0
es.
se N=5
gli elementi dell'array a, saranno a[0],a[1],a[2],a[3],a[4]
se sono tutti pieni, ultimo vale N-1 cioe' 4
se volessi inserire un nuovo elemento questo occupera' la posizione 0
dell'array
infatti
ultimo=(4+1)%5 che e' uguale a 0
% e' l'operatore modulo in C
--
Iscriviti al gruppo yahoo Linguaggio_C  con chat vocale per i soli iscritti
http://it.groups.yahoo.com/group/Linguaggio_C

tutto chiaro, ti ringrazio
Ciao!

Newsgroup: it.comp.lang.c
Titolo: Stampare caratteri in apice...

Salve, qualcuno mi sa dire se esiste qualcosa nell'ANSI C per stampare
caratteri in apice?
Mi spiego meglio, devo scrivere su schermo delle funzioni matematiche, ma
non mi pare carino usare il classico x^2 (per esempio) preferirei poter
mettere il due in apice, voi ne sapete qualcosa?
Sapete se almeno il Borland C++ supporta qualcosa di simile?
Grazie in anticipo a tutti
Gnagno

 Gnagno
-- 
Vladislav Valtchev
Newsgroup: it.comp.lang.c
Titolo: Linux e template

(non so se e' l'NG giusto, comunque..)
Domanda: funzionano i template sotto OS Linux? sono standard? oppure
devo farne a meno?
Grazie a chiunque mi sappia illuminare su sto fatto!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie a chiunque mi sappia illuminare su sto fatto!
Ovviamente, non dipende dal sistema operativo, ma dal compilatore. Cmq, 
un buon compilatore supporta i template senza problemi (per quanto i 
template possano essere intrinsecamente "senza problemi" o meno). Ad 
es., puoi usare il classico gcc/g++.
-- 
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/
Linux registered user 299762 @ Linux registered machine 213003

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

Qualc'uno conosce il fortran ? e se si a che versione siamo arrivati e da
dove posso scaricarla.
Sono uno studente universitario della facolta' di
astronomia a Bologna e ne ho bisogno per un esame.
Grazie a tutti per l'aiuto.
fig...@masterweb.it

astronomia a Bologna e ne ho bisogno per un esame.
Io conosco il fortran, ma dopo l'esame di calcolo numerico l'ho
lasciato perdere.
In ogni caso se ti serve un compilatore freeware io so che nel
pacchetto del djgpp viene distribuito il fortran77.
Su un CD ho trovato nella lista dei programmi compresi nel DJGPP le
seguenti righe :
g770519b.zip B  1,341,942 970120 GNU Fortran77 0.5.19 for DJGPP V2
g770519d.zip B    894,759 970503 GNU Fortran77 0.5.19
Pero' ho paura che tu abbia bisogno dell'ambiente di sviluppo del GNU
C (assemblatore, linker, ecc...) per farlo girare.
In ogni caso io posso spedirti il compilatore per posta elettronica,
poi magari mi dici se ti servono anche i programmi di supporto.

 dove posso scaricarla.
Si lo conosco, purtroppo...    ;-)
Sotto win non so a che versione siano arrivati, in linux io ho il:
g77
Version: 990119
Release: 0
Lo puoi trovare un po' ovunque, nei siti delle varie distro (eg.
http://www.suse.de/
 )
o nei piu' disparati mirror (eg. 
http://mclink.linuxberg.com/
 ).
Ciao,
E.
-----------------------------------
"There is none to comfort me
 Mine enemies have heard my trouble
 Leave in my misery
 Enjoy the Darkness"   -  MDB
Newsgroup: it.comp.lang.c
Titolo: Legge 4 cifre, memorizza MSB e LSB in 2 contenitori diversi.

Devo leggere da un file di testo un numero a 4 cifre e riporlo in 2
contenitori.
Limitando che nel file ci sia solo una riga con un numero eccovi l'esempio:
file:
1234
contenitori:
A=12
B=34
Come fo? Se carico il dato con il %d poi come faccio a suddividerlo nei due
contenitori?

 nei due contenitori?
ti hanno insegnato le divisioni? e il modulo?

 ha scritto nel messaggio
news:11309967....@tin.it...

Non c'e' un comando più immediato?
...ma poi il modulo de che? devo usare abs()?

 ...ma poi il modulo de che? devo usare abs()?
ho capito, non ti hanno insegnato le divisioni ;)
#include <stdio.h>
int main (void){
 int A, B, num;
 
 num = 1234;
 A   = num / 100;
 B   = num % 100;
 printf ("A = %d, B = %d\n",A , B);
 return 0;
}

 wrote in message
news:PqW37.62364$q77.5...@news2.tin.it...

Data la dichiarazione:
short int  x;
se carichi il dato con:
fscanf(fp,"%d",&x) ;    nei due bytes che compongono  x non avrai 12 e
34, come nel tuo esempio, ma (con processori Intel):
(1234 % 4) = 210  =  0xd2
(1234/256) =      4  = 0x04
ai quali puoi accedere dichiarando un puntatore a carattere al quale
assegni líndirizzo di x:
unsigned char *pch;
pch = (char *) &x;
pch[0] ora contiene 210 e  pch[1] contiene  4
Per avere 12 e 34 devi leggere il numero come stringa e poi trasferire i
caratteri nei contenitori, ad esempio con:
char str[5], A[3],  B[3];       /* numero caratteri +  zero finale */
Il codice che segue contiene entrambi i casi.
HTH
#include <stdio.h>
int main() {
   short int x;
   unsigned char * pch;
   char str[] ="1234";
   char A[3], B[3];
   /* Come numero */
   x=1234;
   pch =(unsigned char*) &x;
   printf("Hex  %04x    %02x   %02x\n", x, pch[0],pch[1]);
   printf("Dec  %04d   %02d   %02d\n", x, pch[0],pch[1]);
   /* Come stringa */
   sprintf(A,"%2.2s",str);
   sprintf(B,"%2.2s",str+2);
   printf("Str  %-4s    %-s   %-s\n",str,A,B);
   return 0;
   }


...oggi sono proprio fuso, ero convinto che % (operazione di modulo appunto)
avesse come output la parte decimale....non il resto! E pensare che l'ho
utilizzato già diverse volte. Lasciamo stare e passiamo al post
successivo....
Newsgroup: it.comp.lang.c
Titolo: porting linux->windows [forse un poco OT]

Salve, forse sono un poco OT, ma chiedere non costa niente ... e quindi:
Ho finalmente scritto, compilato ed eseguito correttamente un programmino
scritto in C con l'interfaccia grafica in GTK.
Questo mi ha dato molta soddisfazione. Ora, però, il programmino mi sarebbe
utile eseguirlo in ambiente windows e, forte della trasportabilità delle
GTK, ho provato a ricostruire il progetto sia sotto Dev-C++ che sotto MinGW
Studio, ma entrambe le volte il compilatore mi manda errori su support.h e
in particolare sulla funzione create_pixmap() che penso sia generata da
GLADE2.
Purtroppo le mie conoscenze non mi consentono di capire dove stà l'ostacolo,
perciò chiedo aiuto:
- qual'è, se esiste, la migliore accoppiata per compilare in windows codice
con librerie GTK;
- se volessi cross compilare da linux, come dovrei fare;
Se qualcuno vuole rispondermi, lo ringrazio fin d'ora
Saluti
-- 
Angelo M. Figundio
figun...@tiscali.it

 - se volessi cross compilare da linux, come dovrei fare
la cross-compilazione non l'ho ancora provata, ma ho letto che si riesce
installando su linux mingw32
naturalmente se la provi e ti funziona fammi un fischio
bye

, Angelo Massimo Figundio ha scritto:
	Crearsi un crosscompilatore, ovviamente:
http://www.lulli.net/cgi-bin/oz.pl?sub::hack::xxlink_informatica
P.
Newsgroup: it.comp.lang.c
Titolo: immagini bitmap "sfasate"

Ciao a tutti,
sto tentando di creare delle immagini usando il C, col l'obiettivo di 
disegnare delle rappresentazioni grafiche.
Per la sua semplicità ho scelto il formato bitmap, e così ho fatto un 
programma in C che crea l'immagine "mia.bmp", che è una 800x600 a 24 
bit, bitmap versione 3, ne scrive l'header, che è sempre uguale e quindi 
l'ho tabulato nel codice, e poi passa a scrivere i pixel.
Ho provato per prima cosa a disegnare una barra orizzontale, e viene, ma 
se scrivo:
short r,g,b;
for (x=1;x<600;x++){
     for (y=0;y<800;y++){
        r=(y%250)+1;
        g=r;
        b=r;
         fprintf(fp,"%c%c%c",r,g,b);
         }
     }
Il risultato non è una serie di sfumature grigie verticali, come 
credevo, ma delle sfumature diagonali.
Se invece di y%250 metto x%250 appaiono delle strisce orizzontali, ma in 
verticale non funziona...
L'errore dev'essere qualcosa di semplice, ma nonostante numerosi 
tentativi continuo a non riuscire a tracciare delle semplici barre 
verticali, e quindi nemmeno cose più complesse.
Qualcuno ha un'idea di dove sbagli? Sul web non ho trovato nessuno che 
ne parli.
Grazie

 credevo, ma delle sfumature diagonali.
Bisognerebbe sapere in che formato stai scrivendo la bitmap, tu stai 
scrivendo 24 bit per pixel ma se ottieni diagonali forse ne hai 
dichiarati 32. Per andare a tentativi proverei a mettere
 >         fprintf(fp,"%c%c%c%c",0,r,g,b);
Controlla anche che la bitmap che hai ottenuto abbia le dimensioni che 
ti aspetti. Un altro controllo che farei è quello di colorare solo il 
primo e l'ultimo pixel di ogni riga, per verificare che vadano nel posto 
giusto.
E.

sumail ha scritto:

intanto sono sbagliati i nomi degli indici x <-> y, vanno invertiti 
(solo i nomi)
Poi inizi il ciclo con x=1 mentre deve iniziare da zero.
Sicuro di star aprendo il file in modalità binaria e non di testo?
Poi altra considerazione, la riga deve essere sempre allineata sui 
32bit. Quindi devi riempirla con dei byte (anche casuali).
In questo caso non serve poiché (800 * 3) % 4 -> 0.
es. generico
width = 800;
height = 600;
padding = (width * 3) % 4;
for (y = 0; y < height; y++) {
     for (x = 0; x < width; x++) {
        r = x % 250 + 1;
        g = r;
        b = r;
        fprintf(fp, "%c%c%c", r, g, b);
        }
     for(x = 0; x < padding; ++x)
        fprintf(fp, "%c", r);
     }
Ciao

 In questo caso non serve poiché (800 * 3) % 4 -> 0.
Si, infatti ho scelto 800x600 proprio per risparmiarmi questa seccatura.
Grazie mille.
Newsgroup: it.comp.lang.c
Titolo: Socket

Quali sono i prerequisiti (non in termini di conoscenze, ma di materiale)
per cominciare a programmare "in rete" e allo scambio di pacchetti su
procotollo TCP/IP o UDP ?
Ho tutto quello che mi serve possedendo il Turbo C 3.0 ?
Oppure mi mancano gli headers ?
--
Sparviere
spar...@ngi.it
http://sparviere.tsx.org


l'header per windows relativo ai socket è winsock.h..prova a fare una
ricerta
ciao
Corvo

procotollo TCP/IP o UDP ?
Programmare in rete sotto quale ambiente ?
Se Unix/Linux fai riferimento a it.comp.os.linux.development
Se Win32 fai riferimento a it.comp.programmare.win32

 wrote in message
news:knqR6.5461$i71.1...@news.infostrada.it...


Newsgroup: it.comp.lang.c
Titolo: Attesa un decimo di secondo ???

Poniamo che io voglia far passare tra un comando e l'altro 0,01 sec.
Come faccio ???
Dalla libreria time.h tiro fuori diversi time_t e con la funzione
difftime ottengo la differenza in secondi, ciò significa che l'unità
minima è il secondo ??
Grazie.
Joyce
ICQ 10607234
Per una pera, una pera cazzo...
Per affrontare questa lunga giornata dura !

minima è il secondo ??
Dai uno sguardo alla funzione clock().
Andrea Laforgia
-----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
-----------------------------------------------------

Dai uno sguardo alla funzione clock().
OK... penso di aver capito, grazie.
P.S. Hai ricevuto la mia e-mail ?


minima è il secondo ??
Se hai la libreria dos.h puoi provare la funzione delay(unsigned int
milliseconds) anche se, per esperienza, non è assolutamente affidabile. Se
vuoi qualcosa di veramente preciso devi affidarti a qualche criptica
funzione in assembler....
Ciao, Giuseppe

Newsgroup: it.comp.lang.c
Titolo: Faccio bene a comprare l' L&L??

Scusatemi per la monotonia della mia domanda, ma ormai sono ad un punto
critico: il tricky C mi ha rotto e ho deciso di comprarmi un libro
decente...
Leggendo i vostri post ho capito che la bibbia [K&R] č piuttosto obsoleta e
quindi avrei intenzione di prendermi "C++ Corso di programmazione" [versione
it del C++ Primer]
Il bello č che costa 89.000 L. e voglio sapere se vale la pena di
spenderli...
Ad esempio:
-tratta solo di C++ o parte anche dalle basi del C?
-la terza versione č quella + recente o ce ne sono delle altre?
-č adatto ad un newbie?
Spero che mi risponderete positivamente
Grazie
[Filippo]

[Filippo]
Alex

 piuttosto obsoleta 
  Hai letto male: il K&R e` ancora il manuale di riferimento per lo
standard C89 e lo sara` finche` il C99 non sara` definitivamente
unanimamente accettato nelle implementazioni (ed anche per un bel po' di
tempo a seguire).
	Alla prossima,
		Marco

standard C89 e lo sara` finche` il C99 non sara` definitivamente
Ricordiamoci che il K&R seconda versione non e' perfettamente
allineato allo standard.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------------------------
"There is nothing better for understanding a kangaroo than seeing it jump."
[D.Grune, C.J.H. Jacobs]
Newsgroup: it.comp.lang.c
Titolo: memcmp char

Salve a tutti.
Se in un programmino C memorizzo 10 Byte in una variabile char e gli
stessi 10 Byte in una variabile unsigned char,
facendo una memcmp dei dieci byte delle due variabili è possibile che
in alcuni casi non vengano riconosciute uguali ( es. per simboli con
codice ascii > 128) ?
Grazie
Gabry

 codice ascii > 128) ?
Direi di no: memcmp confronta le due zone di memoria considerando ogni 
byte come se fosse unsigned quindi vede solo valori positivi.
ciao
Giacomo

 Comunque in questo caso il discorso non cambia...
Bè, si, chiaramente volevo scrivere ' char * ' ...
Grazie della risposta