mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Differenze tra ' ' e " "...

Ciao a tutti...
Che differenza c'è tra usare il singolo apice e il doppio...ad esempio 'b' e
"b" ?
Grazie 1000 a tutti!!!
Buone Feste
Enrico S.

 "b" ?
'b' = char;
"b" = literal string;
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

 "b" = literal string;
e inoltre:
"b" = ['b']['\0']
--
ciao
..::[xaero]::..

"b" = ['b']['\0']
^^^^^^^^^^^^^^^^^^
che linguaggio sarebbe ?
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 "b" = literal string;
  Il K&R seconda edizione a pagina 46 dice:
 "Fate molta attenzione nel distinguere una
 costante carattere da una stringa  che contiene un
 singolo carattere: 'x' e "x" non sono la stessa cosa.
 'x' e' un intero usato per produrre il valore numerico
 della lettera x nel set di caratteri della macchina;
 "x", invece, e' un vettore di caratteri che contiene
 un carattere (la lettera x) ed uno '\0'."
 sizeof('b'); a me restituisce la dimensione di un int
 da 2 byte o da 4 byte a seconda del complilatore e della
 macchina, non di un char che e' costituito da un solo byte.
  Ne deduco che 'b' e' un intero

 che linguaggio sarebbe ?
un disegnino!  ^_______^



«Se dio esiste, spero che abbia una scusa valida.»
(D. Pennac)

Newsgroup: it.comp.lang.c
Titolo: costrutto fork() con pipe()

 
Il padre genera due figli con il costrutto fork()
Mi piacerebbe sapere se questi due figli possono comunicare tra
di loro tramite una pipe, badate bene che sono due fratelli,
c'e' una relazione di parentela tra di loro ma il grado di parentela
e' 0.
Possono comunicare con una pipe tra di loro?
Esempio:
main()
{ bla bla....
ch='1'
pid1=fork();
pid2=fork();
pipe(piped);
if (pid1==0) { write(piped[0],&ch,1)
                   }
if (pid2==0) { read(piped[1],&ch,1)
                   }
}

 ha scritto nel messaggio
news:3a86975...@news.nettuno.it...

a parte write(piped[0], ch, 1) e  i ';' mi sembra tutto ok.

Possono comunicare con una pipe tra di loro?
Si'. I processi figli possono comunicare con una pipe, perche' sono a
tutti gli effetti due processi distinti.
Tieni presente che anche il processo genitore e il processo figlio
possono comunicare con una pipe.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."
Newsgroup: it.comp.lang.c
Titolo: [OT] MSDN Originale Vendesi

 Spese di spedizione a carico del destinatario.
Ti sei dimenticato di spiegare che, salvo MSDNNews che sono praticamente delle
riviste, tutto il resto e' costituito da CD contenenti SW di cui tu non hai il
diritto di vendere la licenza.
Pertanto nel caso che qualcuno li acquistasse sia tu che lui rischiereste una
denuncia penale (per te: pirateria informatica e/o ricettazione. Per
l'acquirente: lo stesso, oppure, se ha culo, semplicemente incauto acquisto).
Inoltre ti segnalo, visto che non e' la prima volta che posti messaggi del
genere, che alla prossima scatta la segnalazione sia alla MS che alla GdF.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

genere, che alla prossima scatta la segnalazione sia alla MS che alla GdF.
Frankbus andrebbe denunciato penalmente per i seri danni
testicolari che provoca a molte persone che leggono questo
gruppo.  Da che frequento Usenet non ho mai visto un
messaggio di Frankbus diverso dal precedente.
Sto cominciando a pensare che il suo (loro) intento sia
quello di trolleggiare e basta.
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia
Newsgroup: it.comp.lang.c
Titolo: 8bpp to 4bpp

Salve a tutti,
ho la necessità di convertire 2 bytes in 1 bytes.
Per esempio, avendo 0x01 e 0x0F deve risultare in 0x1F.
Questo perchè devo trasformare una bitmap da 8pp a 4bpp.
Ovviamente i valori dei singoli bytes non saranno mai più grandi di
0x0F ( ossia l'indice di una palette di 16 colori da 0x00 a 0x0f)
Grazie.


qualche operazione con le maschere di bit?
unsigned char b1, b2, res;
b1 = 0x01;
b2 = 0x0f;
res = (((b1&0xf)<<4) | (b2&0xf));
io metterei tutto in una macro
#define UNITE_NIBBLE(_B1, _B2) ((((_B1)&0xf)<<4) | ((_B2)&0xf))
Ciao!


risolto:
#define mypack(a,b)  (((b) | (a) << 4))

 #define mypack(a,b)  (((b) | (a) << 4))
Così non funziona.
Se hai a = 0x0E, b = 0x09, invece di ottenere 0xE9 ottieni 0x0F.
Al massimo dovresti scrivere:
#define mypack (a,b) ((a) << 4 | (b))
e comunque, come già ti hanno suggerito, ti conviene eseguire una AND
tra i singoli valori e la costante 0x0F, in modo da essere sicuro di
avere valori compresi tra 0x00 e 0x0F:
#define mypack (a,b) ( ((a) & 0x0F) << 4 | ((b) & 0x0F) )


no, ho provato.

 no, ho provato.
Ah già, la precedenza tra operatori, questa sconosciuta :)
Hai ragione, mea culpa ;)


wrote:

sì beh, due parentesi in più non fanno male mai - specialmente per chi
legge.
Sinceramente picchierei anche quelli che non le mettono tra operazioni
aritmetiche ( tipo: i * j - k invece di un sano (i * j) - k ),
figuriamoci quelli che non le mettono tra operatori logici/aritmetici/
binari (tipo a leggere qualcosa come "a << 3 || c >> 3 + b | z" mi
passa anche la voglia di capire).
Ricordo che le parentesi non si pagano :-D
Ciao!

 passa anche la voglia di capire).
D'accordissimo sul pastrocchio di shift e operatori logici (ci persi un 
giorno intero una volta per un bug legato ad una cosa del genere)... ma la 
precedenza tra moltiplicazione e addizione non e' troppo difficile da 
ricordare :)
Pleg


eheheh - se è per questo penso che sugli NG riguardo il C ci sia la
più alta concentrazione di programmatori che ricordano le precedenze
anche tra shift e operatori logici :-) ma il fatto di avere memoria
non esclude l'essere pigri a capire il codice altrui! ;-)
Ciao!

Newsgroup: it.comp.lang.c
Titolo: i tasti freccia

Esiste solo la funzione getch(); per accettare un tasto dall'utente?
 Se si, perchè tale funzione restituisce, per i tasti frecce due codici di
scansione (0,77 ecc.)
Come si può fare alternativamente?

...

Newsgroup: it.comp.lang.c
Titolo: matrice contenuta in una struttura

ho trovato questa definizione (da Graphics Gems):
typedef struct Matrix3Struct {	/* 3-by-3 matrix */
	double element[3][3];
	} Matrix3;
vorrei sapere quali sono i vantaggi di "inscatolare" una matrice all'interno
di una struttura


Le strutture possono essere assegnate, mentre le matrici no. Quanto 
segue e` sbagliato:
     int a[3][3];
     int b[3][3];
     /* riempi la matrice a ... */
     b = a;    /* errore */
mentre questo e` invece corretto:
     struct Matrice {
         int a[3][3];
     };
     struct Matrice a, b;
     /* riempi la matrice a ... */
     b = a;
Il vantaggio sta quindi nel poter fare una copia in una sola riga di 
codice, invece di dover impostare un paio di cicli innestati ogni volta.
Probabilmente uno puo` trovare anche altri motivi per creare una struct 
contenente solo un array o una matrice, questo e` il primo che mi e` 
venuto in mente.
-- 
Enrico `Trippo' Porreca

 venuto in mente.
mi č venuto in mente un altro motivo e volevo conferma
io passo una matrice bidimensionale tipo   a[3][7]   ad una funzione tipo
int fun1(*mx)   cosě:
fun1(&a[0][0]);
all'interno della funzione per accedere agli elementi della matrice usando
due indici i e j sono costretto ad usare, in questo caso:   a[i*7 + j]
visto che la matrice "diventa" un vettore
viceversa passando la struttura, posso continuare ad accedere al singolo
elemento usando due indici:    a.element[i][j]
č giusto? o c'č un metodo per passare una matrice bidimensionale ad una
funzione continuando a trattarla come matrice bidimensionale?
Newsgroup: it.comp.lang.c
Titolo: roundf

Cia,
mi spiegate perchè se faccio
float n= 1.3;
printf("%f",roundf(n));
mi viene stampato 1.299999???
la setssa cosa vale per tutti gli altri numeri che inserisco.....
Non dovrebbe stamparmi 1?
Grazie

 Non dovrebbe stamparmi 1?
roundf???
Comunque e' moltissimo probabile che dipenda dalla struttura interna dei
numeri float/double/long double.
Il formato e' un IEEE non-so-quale comunque. E', diciamo, una
limitazione dell'architettura con cui e' stato costruito il processore e
dipende in sostanza dal modo in cui vengono rappresentati i numeri
float: cioe' in base 2! Ovviamente, come nei numeri a base 10 esiste il
periodo (ad es 1.333333...), anche in base 2 c'e'. E in genere uno non
salva una infinita' di numeri, ma un troncamento degli stessi. Quello
che tu leggi 1.3 in realta', in base 2, e' salvato come 1.29999 (o un
numero analogo, ma finito). Il numero viene in ogni caso troncato per
difetto.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 difetto.
embč?! ;)
la domanda era un'altra.. perchč la funzione che dovrebbe restituire "1"
restituisce "1.299999"?
io comunque roundf non la conosco.. semmai prova ad usare floor(n)


A me, stampa 1.000000, infatti.
-- 
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

 A me, stampa 1.000000, infatti.
Ho provato per curiosita'...
A me non funge, e non capisco cosa non va !!
uso gcc sotto linux.
Se faccio man roundf mi dice
che rounf prende un float e restituisce un float
e che dovrebbe essere definita in math.h
Se faccio
#include<stdio.h>
#include<math.h>
int main()
{
   float x = 1.3;
   double y;
   y=(double) roundf(x);
   printf("y = %f\n",y);
   return 0;
}
se poi compilo con
gcc -Wall ciccio.c -lm -o ciccio
mi da un warning sul fatto che roundf non e' definita!
e poi l'eseguibile mi stampa dei valori assurdi...
C'e' qualche problema con gli include del gcc ?
ciao,
e.

> io comunque roundf non la conosco.. semmai prova ad usare floor(n)
Infatti sono stato costretto a farmi una funzioncina che fa uso di ceil e
floor.....

 C'e' qualche problema con gli include del gcc ?
No. Devi solo dirgli di attenersi allo standard 99 (aggiungi -std=c99).
E dopo funziona. E senza warning.
Giorgio

 restituisce "1.299999"?
Magari perche' roundf NON approssima all'intero piu' vicino, ma al float
piu' vicino! Comunque neanche io mai sentito roundf...


 piu' vicino! Comunque neanche io mai sentito roundf...
Come e' gia' stato detto, e' stato introdotto con lo standard C99.


Newsgroup: it.comp.lang.c
Titolo: saxpy ed gaxpy

Ciao a tutti....
ho sentito parlare di saxpy ed gaxpy...sapete dirmi cosa sono??
Grazie in anticipo x l'aiuto

Annamaria wrote:

sono routine numeriche per l'algebra delle matrici. fanno parte di una
famiglia di routine detta BLAS (Basic Linear Algebra S..boh non mi
ricordo). 
ciao,
  nelson
-- 
Se incontrate un bivio, imboccatelo.
  -- Yogi Berra
Newsgroup: it.comp.lang.c
Titolo: Creazione dll tramite gcc

 
Ciao, ho un problema!
Devo utilizzare del codice C soto Java tramite la JNI.
Ho creato l'heder file con "javah":
#include <jni.h>
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
  (JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
Ho creato poi il file.c:
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
    printf("Hello world!\n");
    return;
}
e ho cercato di compilarlo tramite il compilatore GCC di cygwin (gcc
HelloWorld.c) ma mi da il seguente errore:
undefined reference to _winmain@16
Come posso risolvere il problema?
Ringrazio chiunque mi possa aiutare...ciao!
Mary
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:193Z206Z108Z69Y...@usenet.libero.it...


 
Prova a vedere se puo' esserti utile.
http://sig9.com/featured/mingwdll/
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Ti spiego in dettaglio il mio problema.

Ti spiego in dettaglio il mio problema.
Con un programmino in delphi ho creato dei dati poi esportati
automaticamente in pagine html (tabelle con numeri) da pubblicare.
La grafica delle pagine non e' gran che.
A quel punto ho pensato di importare i dati (tabelle con numeri) in
excel per migliorarli dal punto di vista grafico (colori e dimensioni).
Ora nasce il problema. Le tabelle devono essere  importate nel sito web
costruito e strutturato graficamente e nei contenuti con frontpage o
dreamweaver.
Modificare le pagine ogni volta a mano per modificare ogni volta i soli
dati contenuti nelle tabelle e' impossibile.
In due parole frontpage dovrebbe caricare automarticamente il file excel
e cambiare i vecchi dati delle tabelle con i nuovi.
Come fare???
Con corel draw e' facile farlo: utilizzo il collegamento OLE: viene
importata la tabella sulla pagina una sola volta con il collegamento
ole. In due parole utilizzo il comando incolla speciale e come
collegamento foglio di lavoro excel.
PURTROPPO TALE PULSANTE NON ESISTE SU FRONTPAGE E NEANCHE SU
DREAMWEAVER.
COme faccio????
Ogni volta che tale pagina su corel si apre va a verificare se il foglio
di lavoro excel e i dati in esso contenuti sono sempre quelli o sono
cambiati, nel qual caso vengono automaticamente cambiati sulla pagina di
corel draw.
Problema: creare un sito con il corel e' non proprio il massimo.
La stessa cosa si puo' fare con frontpage o dreamweaver?????
Domanda: come far fare a frontpage ad eseguire tali operazioni di
sostituzione dei dati in modo automatico e fargli generare sempre in
modo automatico le nuove pagine web?
Per cortesia per sicurezza rispondetemi in e.mail:
luigi...@yahoo.it
Ringrazio quanti sapranno indicarmi la retta via da seguire per
risolvere l'enigma.
Luigi.

Molto pertinente al NG!
Newsgroup: it.comp.lang.c
Titolo: Alternativa a sleep

Scusatemi avrei bisogno di una funzione per aspettare del tempo durante 
l'esecuzione di un programma...
Naturalmente la prima che mi viene in mente è "sleep" definita din 
unistd.h. Il problema è che sleep non funziona affatto con intervalli di 
tempo minori di 1 secondo. Infatti a me serviva proprio qualcosa che mi 
permettere di aspettare frazioni di secondo e sleep chiamata in questo 
modo, ad esempio:
sleep(0.5)
ritorna subito senza aspettare nulla...
Conoscete qualche altra funzione che mi permette di aspettare tempi 
anche inferiori al secondo?
Grazie mille!!!

Will ha scritto:

Puoi usare nanosleep, oltre a fare quello che vuoi questa ti dà la 
possibilità di sapere quanto tempo ti rimane da attendere in caso la 
funzione sia interrotta dall'arrivo di un segnale (errno viene settato a 
EINTR).
Per saperne di più man nanosleep
Ciao, Alberto

 Per saperne di più man nanosleep
Ottimo grazie! Funziona esattamente come volevo ;)

> anche inferiori al secondo?
Esiste anche usleep!
Newsgroup: it.comp.lang.c
Titolo: Assembler e codice c c++

Qual'e' la parola chiave per inserire codice assembler all'interno di
codice c usando i compilatori cc e gcc di Unix?
Serve includere qualche direttiva particolare?

Geppo wrote:

  Il post e' OT su questo NG
Ivan Molella

   Il post e' OT su questo NG
Non sono d'accordo, lui ha chiesto per uno specifico compilatore, ma in
realtą la parola chiave per inserire l'assembler "inline" fa parte del
linguaggio C standard.
Ed č
asm
ciao ciao
--
Marco Coppo
University Of Sheffield

> Non sono d'accordo....
grazie :)
comunque asm non va (almeno sul mio Linux un po' "disastrato"), e ho il
sospetto che serva una qualche direttiva.
E' possibile?

 comunque asm non va 
$ info gcc 'C Extensions' 'Extended Asm'
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Newsgroup: it.comp.lang.c
Titolo: [?]Come posso fare...

Salve a tutti , come posso fare per stampare con
fprintf un array di interi e/o un array di char.
Grazie a tutti
Ciao  Roberto
--
Prima infatti dovrà avvenire l'apostasia
e dovrà essere rivelato l'uomo iniquo ,
il figlio della perdizione, ...
... fino a sedere nel tempio di Dio ,
 additando se stesso come Dio.
                    Paolo
               Tessalonicesi 2,3


I'm not prejudiced, I hate everyone equally.

... hai capito bene
grazie
Ciao Roberto
"Antonio barbone" <bar...@raffaello.home> ha scritto nel messaggio
news:slrn9onig2...@barbone.raffaello.home...


Newsgroup: it.comp.lang.c
Titolo: Aiuto routines per lettura file

Ciao a tutti
 sto costruendo un programma molto semplice per il superenalotto. 
Ho un file che ha la seguente struttura
6-4-2006;19;49;78;85;69;34
28-3-2006;57;76;23;72;17;22
30-3-2006;78;68;22;4;23;33
con tutte le estrazioni del superenalotto.
Come posso fare per caricare in memoria questa struttura?
void main()
{
  int j=0;
  char inp_file;
  char my_file[50][6];
string data_estrazione;
int, estrazione[6]
  FILE *fp;
  fp = fopen("estrazione.txt","r");
  while(fgets(inp_file,6,fp) != NULL)
    {
      printf("leggo riga \n");
      strcpy(my_file[j],inp_file);
      j++;
    }
}
Come posso fare per associare la data e poi i  numeri dell'estrazione?
grazie per l'aiuto.
A presto.
                                        ALEX

 Come posso fare per associare la data e poi i  numeri dell'estrazione?
Il consiglio è sempre quello di leggere un'intera riga di input, e poi
fare il parsing del buffer (con sscanf, strtol*, o quello che ti pare).
Nel tuo caso potresi anche fare:
char buf[MAX_LINE];
while(fgets(buf, sizeof(buf), fp)) {
        int r;
        r = sscanf(buf, "%d-%d-%d;%d;%d;%d;%d;%d;%d", &day, month,
                &year, &n1, &n2, &n3, &n4, &n5, &n6);
        if (r != 9)
                die();
}
Ovviamente se devi tenere tutti i dati in memoria dovrai crearti un adt
opportuno...
Luca
-- 
Home: 
http://kronoz.cjb.net
Mi piace avere amici rispettabili;
Mi piace essere il peggiore della compagnia.
Newsgroup: it.comp.lang.c
Titolo: Help su: dereferencing pointer to incomplete type

Salve. Sistema operativo RedHat 7.3. Compilatore gcc.
Se provo a compilare un sorgente con la seguente funzione:
struct in_addr *atoaddr(char *address) {
  struct hostent *host;
  static struct in_addr saddr;
  saddr.s_addr = inet_addr(address);
  if (saddr.s_addr == -1) {
    host = (struct hostent*)gethostbyname(address);
    if (host == NULL)
      return NULL;
    bcopy(host->h_addr, (char*)&saddr, host->h_length);
  }
  return &saddr;
}
Mi da il seguente errore:
dereferencing pointer to incomplete type
alla riga:
bcopy(host->h_addr, (char*)&saddr, host->h_length);
Ho provato a fare sia così, sia col casting, ma sempre lo stesso errore.
Qualcuno sa a cosa è dovuto?
Ciao

 
compilando il seguente:
<CODE>
struct in_addr *main(char *address)
{
	struct hostent *host;
	static struct in_addr saddr;
	saddr.s_addr = inet_addr(address);
	if (saddr.s_addr == -1)
	{
		host = (struct hostent*)gethostbyname(address);
		if (host == NULL)
			return NULL;
		bcopy(host->h_addr,(char*)&saddr,host->h_length);
	}
	return &saddr;
}
</CODE>
l'unica cosa che mi risponde gcc e`:
	lestat@lilith:~$ gcc test.c
	test.c: In function `main':
	test.c:3: warning: return type of `main' is not `int'
controlla di aver incluso tutte le librerie necessarie, e che i tuoi header
siano a posto; eventualmente prova a togliere lo "static" e a dichiarare saddr
come puntatore, e allocarlo successivamente (ti complichi anche meno la vita).
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>

 test.c:3: warning: return type of `main' is not `int'
Ho compilato il tuo stesso codice, aggiungendo gli header:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
e mi dice:
test.c: In function `main':
test.c:19: dereferencing pointer to incomplete type
test.c:19: dereferencing pointer to incomplete type
test.c:9: warning: return type of `main' is not `int'
Boh.... mi dici esattamente cosa ci hai messo nel tuo source?
Grazie


prova ad aggiungere:
#include <stdlib.h>
#include <arpa/inet.h>  // necessaria per inet_aton() etc.
..e forse anche:
#include <unistd.h>

Newsgroup: it.comp.lang.c
Titolo: Re: Stringhe

 posso ricercarla nella stringa?
Espressioni regolari. Lo standard di Unix (o di C?) prevede una libreria
per le espressioni regolari. Mi pare che l'header sia regex.h, ma dovresti
verificare.
Saluti,
Marco



 per le espressioni regolari.
Posix forse, ma di sicuro le espressioni regolari non fanno parte dello
standard del C.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Salve a tutti, ho un problema da risolvere:
ho un testo di molte righe in una stringa tipo char*, se volessi trovare una
frase all'interno tipo "Ciao..." e che finisca "...Ci vediamo presto!" come
posso ricercarla nella stringa e sostituirla con altro?
Newsgroup: it.comp.lang.c
Titolo: problemi di compilazione

Ciao a tutti
ottengo questo errore:
umi.hxx:13: error: redefinition of ‘struct timespec’
il file h è il seguenti, come posso ovviare:
#ifndef _UMI_UMI_HXX
#define _UMI_UMI_HXX
/**
 * \file
 * Universal Message Interface - Generic C++ part
 */
#include "umi.h"
#include <limits.h>
#if (defined(MMSYS_linux) || defined(MMSYS_lkern) ||
defined(MMSYS_qnx))
#include <sys/time.h>
#else
  struct timespec {
    unsigned tv_sec;
    unsigned tv_nsec;
  };
#endif
Grazie Luca


evidentemente non sono definite nè MMSYS_linux nè MMSYS_lkern nè
MMSYS_qnx.
Quello che questo implica dipende da quello che stai cercando di
fare...
Ciao!
Newsgroup: it.comp.lang.c
Titolo: GRAFI

Qualcuno può illustrarmi o inviarmi del materiale su grafi complessi tipo
grafi ricorsivi...
Grazie

grafi ricorsivi...
OFF TOPIC
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

grafi ricorsivi...
Prova su it.scienza.informatica, ammesso che non sia fuori tema anche
li.
Il Ghenio
-----
Proteggeremo il mondo della devastazione!
Uniremo tutti i popoli nella nostra nazione!
Denunceremo i mali della verità e dell'amore,
Estenderemo il nostro potere fino alle stelle.
Jesse!
James!
Team Rocket pronto a partire alla velocità della luce.
Arrendetevi subito oppure preparatevi a combattere.
Miaaaoooo, proprio cosi'!
(Team Rocket)
-----

Newsgroup: it.comp.lang.c
Titolo: matrice allocata dinamicamente

ho bisogno di crearmi una matrice partendo dalla dimensione di un file cosě
scritto:
a b c d
a b c d
a b c d.....
non so quanti a b c d ci sono...ho scannato una volta il file per contare le
linee del file (dato che le colonne sono 4) e poi volevo creare una matrice
con malloc...
Ho provato facendo un vettore di dim*4 caratteri, ma non mi fa usare il modo
matrice[i][j], mi sono aggiustato con i puntatori facendo
*(matrice+dim*i+j), ma č un po' piů complicato...
Mi chiedevo se era possibile costruire una matrice in modo che mi prenda la
sintassi matrice[i][j].
--
Andrea Richiardi
aka
KapitanFiNd-uS
UIN ICQ: 106701708
EMAIL: ari...@NOSPAMinwind.it


Nel tuo  caso, pero`,  sarebbe piu`  comoda una  lista (eviti  la doppia
passata sul file).
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Ci sono le balle , le megaballe e le statistiche".
 Mark Twain

 ha scritto nel messaggio
news:afq299$67l$3...@dreamland.darkstar.net...



Quando  rispondi fallo  sotto  al messaggio  (o alla  frase  a cui  stai
rispondendo), avendo  cura di eliminare  le parti non necessarie  ad una
corretta interpretazione della risposta.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Windows NT crashed.
I'm the Blue Screen of Death.
No one hears your screams.

Newsgroup: it.comp.lang.c
Titolo: [OT] CUDA

Salve a tutti,
per un progettino di fine corso devo sviluppare un programmino con CUDA (in 
effetti, si tratta di parallelizzare un programma gia' esistente).
Qualcuno ci ha programmato? Ha qualche tutorial da suggerirmi? Qui si va 
svelti, quindi ho pochi giorni (max una settimana) per capire le basi e 
cominciare a scrivere qualcosa. Qualcuno ha dei suggerimenti del tipo 
problemi tipici o cose chiave da capire per sfruttare a meglio il 
dispositivo?
Thx,
Pleg 

Nel mezzo del cammin di nostra vita, mi ritrovai con Pleg che diceva:

In uno degli ultimi numeri del Linux Journal c'era un tutorial, forse 
riesci a ritrovarlo in rete
-- 
"Le opinioni dei fanatici prescindono dai fatti"
python -c "print 'bG9ybWF5bmFAZ21haWwuY29t'.decode('base64')"
Linux Registered User: 461615
Newsgroup: it.comp.lang.c
Titolo: generazione di numeri casuali

Ciao gente!
Per generare numeri (pseudo)casuali in C io conosco solo rand() (e la srand
che la insemina). Il miglior metodo che ho trovato finora per generare
numeri abbastanza casuali è quello di inseminare rand() con
srand(time(NULL)). Ho notato però che nel margine di un secondo (o giù di
lì) genera sempre lo stesso numero.
Come posso fare per generarli in modo più casuale?

?
mi sembra strano...
solo una curiositą..:
la srand la usi piu' di una volta?
dovresti usarla solo una volta ad inizio programma...
in ANSI non mi pare ci siano altre istruzioni...


Be', ci sono degli scenari nei quali il problema
puo' presentarsi.
Per esempio, uno puo' avere un programma che
ha la sua brava srand() iniziale,
ma viene invocato da una batch a ripetizione,
e la sua esecuzione dura solo, diciamo, 0.2 secondi.
In questo caso avremo molti test che partono
dagli stessi semi.
Le soluzioni possibili sono tante.
Naturalmente la prima e' quella di trasformare il programma
in una funzione e scrivere un programma che la invoca
ripetutamente. (Insomma, trasformare la batch in
un programma vero e proprio.) e spostare la srand()
dalla funzione al programma.
Se pero' uno non vuole o non puo' fare questa cosa non
tutto e' perduto.
Per esempio basterebbe modificare la srand() in questo
modo.
In pratica la prima volta chiama srand su time(0),
le altre volte legge il seme da un file e lo rimemorizza.
(Chiaramente non va bene per piu' programmi che la
usano contemporaneamente... e' solo per dare una idea)
void MySrand()
{
   FILE *f;
   int r;
   f=fopen("My_Seed","rb"); // 'b' e' per macchine win...
   if (!f) // se il file non c'e' e' la prima volta!
   {
      srand(time(NULL));  // uso time
   }
   else     // altrimenti leggo dal file il seme
   {
      fread(&r,sizeof(int),1,f);
      fclose(f);
      srand(r);
   }
  // memorizzo un altro seme per la prossima volta
   r=rand();
   f=fopen("My_Seed","wb");
   fwrite(&r, sizeof(int), 1,f);
   fclose(f);
}
Una alternativa nei sistemi linux e' quella
di leggere dei byte dai device /dev/random e /dev/urandom,
vedere "man urandom".
Potrebbe venire anche la tentazione di usare clock() (in aggiunta
a time, tipo srand(clock()^time(NULL));
pero' anche se la granularita' di clock() e' fine, il tempo
misurato e' relativo all'inizio del programma, quindi se la srand()
e' all'inizio, sara' sempre 0 o un numero molto basso.
Infine (ma non ricordo se e' standard) c'e' di solito la possibilita'
con una funzione opportuna di leggere la data odierna con una precisione
del centesimo di secondo. A quel punto basterebbe digerire un po' i dati
e darli in pasto alla srand().
ciao,
g.

 la srand la usi piu' di una volta?
Si, solo una volta.

 del centesimo di secondo. 
E come si fa?
Newsgroup: it.comp.lang.c
Titolo: lib e dll

Ciao a tutti,
premetto che sono alle prime armi con il c.
Ho il seguente problema:
devo utilizzare in una dll activex dei file .lib di terze parti,
scritti in c.
Come posso fare, utilizzando il compilatore vc6 ? 
Grazie,
Vincenzo.

 Come posso fare, utilizzando il compilatore vc6 ? 
Project->Settings->Link
Selezioni in "General" nel ComboBox "Category" (ma dovrebbe essere
selezionato di default) ed aggiungi il file .lib nel TextBox
"Object/libray modules"
Per maggiori dettagli
it.comp.programmare.win32
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 "Object/libray modules"
Allora avevo fatto la procedura giusta !!!
Ma allora perchè in fase di linkaggio mi da
myComm.obj : error LNK2001: unresolved external symbol "void __cdecl
dms_execute(char *)" (?dms_execute@@YAXPAD@Z) ?

 dms_execute(char *)" (?dms_execute@@YAXPAD@Z) ?
Perche' non trova dms_execute(char *), ovvio.
In quale libreria dovrebbe trovarsi il codice di dms_execute(char *)?


Newsgroup: it.comp.lang.c
Titolo: interrupt list

Sto cercando la lista completa degli interrupt
sapete dirmi dove trovarla?
Se poi fosse in Italiano sarebbe il massimo ma sicuramente non c'e'...
Grazie
Bi...@tin.it

sapete dirmi dove trovarla?
c'e' l'ottima "x86/MS-DOS Interrupt List" di Ralf Brown, la puoi
trovare su VolFTP:
ftp://volftp.tin.it/pub/pc/msdos/programming/inter57a.zip
ci sono piu' files che nomi terminano con le lettere dalla a-g (se
ricordo bene).
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c
Titolo: [semi ot] c++ errore strano in compilazione

ciao a tutti sono nuovo del c++ e ho un problema strano in compilazione.
kdeveloper con gcc 4.2.4 su slack.
S3.cpp e S3.h
s3.h e'
#include <ncurses.h>
#include <strings.h>
#include <stdio.h>
#include <vector>
#include <form.h>
using namespace std;
...
class campo
	{
	public:
 
	campo()
		{
		fldInp=new_field(1, 1, 1, 1, 0, 0);		
		}	
	campo(int intXInp, int intYInp, int intLungInp, int intAltInp, TipoCampo
tcInp,InputCampo icInp, char *chrInit)
		{	
		fldInp=new_field(intAltInp, intLungInp, intYInp, intXInp, 0, 0);
		};
 
	private:
 
	FIELD *fldInp;
	TipoCampo tcCampo;
	};
 
class s3{
public:
	int colonne;
	int righe;
	charST tastifunz[12];
	charTitolo titolo;
	s3();
	~s3();
	void reset();
private:
	vector<campo> campi;	
};
s3.cpp
#include "s3.h"
s3::s3()
	{		
	initscr();
...
	}
s3::~s3()
	{
	clear();
	endwin();
	}
 
void s3::reset() // pulisce tutta la maschera, pronta per essere
riutilizzata
	{
...
	}
il problema e' nella classe campo.
come vedete ci sono due costruttori, uno senza passaggio parametri, uno
con passaggio parametri.
sono praticamente uguali, fanno quasi le stesse cose, ma in compilazione
mi da'
s3.o: In function `campo':
/home/max/source/produzione/masks/src/s3.h:24: undefined reference to
`new_field'
eppure la funzione l'ho presa pari pari dall'altro costruttore, e la
funzione new_field la uso nell'altro costruttore.
non riesco a capire.
-- 
Spolvera la mia email per rispondermi
"Storia del Mondo. I vulcani eruttarono. Gli oceani ribollirono.
L'universo era in tumulto. Poi venne il cane."
Snoopy
maxy04.splinder.com
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 kdeveloper con gcc 4.2.4 su slack.
Ciao, non so se qui possono darti una mano,
č un gruppo sul C. Prova a postare la tua domanda su
it.comp.lang.c++ oppure in inglese su comp.lang.c++,
lě puoi contare sull'aiuto di ancora piů persone.
-- 
Vincenzo Mercuri

grazie mille! :)


 grazie mille! :)
prego figurati :-)
a proposito, in inglese c'è anche il gruppo alt.comp.lang.learn.c-c++
per chi è alle prime armi. Se poi hai domande specifiche su program-
mazione di sistema Unix puoi provare sia qui che su comp.unix.programmer
(quest'ultimo sempre in inglese).
Ciao!
-- 
Vincenzo Mercuri

ho capito il problema, e' un errore del linker, non trova le librerie.
mo' cerco di fargliele vedere.

Newsgroup: it.comp.lang.c
Titolo: Alcune domande sul C

dato che voglio imparare a programmare in C ho alcune domande da
porvi.
Premetto che conosco solo le piů minime basi del C. 
Quando devo fare un programma come faccio a sapere quali file #include
devo mettere? Ad esempio lo stdio.h
per l' input e output ma gli altri? Mi servirebbe una lista che indica
a che cosa servono alcuni #include e che 
spiega quando servono.
Altra domanda: Che differenza c'č nel programmare su Windows anzichč
su Linux? Cosa devo sapere "in piů"?
Grazie
ciao

 su Linux? Cosa devo sapere "in piů"?
Su Linux non hai  a disposizione un solo toolkit per  la grafica sotto X
(ne' un solo toolkit per la grafica sotto console, del resto). E ci sono
alcune funzioni non portabili tra le due piattaforme.
-- 
Emmanuele Bassi         |  Linux: [ 
http://digilander.iol.it/ebassi/linux/
 ]
                        |   SLRN: [ 
http://digilander.iol.it/ebassi/slrn/
  ]
emmanue...@iol.it
  |   SETI: [ 
http://digilander.iol.it/ebassi/seti/
  ]
  GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C

  GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C
Grazie

 Dove lo trovo? E' un libro o un manuale reperibile in rete?
Kernighan & Ritchie
"Linguaggio C - Seconda Edizione"
Jackson Libri
Ciao,
 Emmanuele


su Linux? Cosa devo sapere "in piů"?
E' un tipo di programmazione diversa.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 credo).
è verò, qui : 
http://www.delorie.com/djgpp/doc/incs-2.02/
--
Consonni Davide
bmq...@tin.it
gna...@wappi.com
webmaster of
http://gnaffy.Tripod.com
http://www.traduzioniellepi.com
Newsgroup: it.comp.lang.c
Titolo: Socket: Compilazione (Dev c/c++)

Sto cercando di compilare dei sorgenti col Dev C/C++ ma non riesco ad
elimare gli errori.
Sono due files per impratichirsi con le socket: un client e un server.
Ho sia la versione per Unix (e girano a meraviglia) che la modifica per
Windows.
Mi hanno consigliato di aggiungere l'opzione -lwsock32  nel Dev
(precisamente
strumenti-->opzioni del compilatore--->programmi  e  alla riga
gcc: -lwsock32  )
ma non è cambiato molto :_(
Windows 2000 professional
Dev c/c++ versione 4.9.8.0
Cosa altro posso provare? :-?
Ringrazio per l'aiuto!
- Simone -
P.s. I sorgenti sono disponibili qui:
http://www.informatica.uniroma2.it/upload/2003/LPSR/esempio1.zip
Per windows sono: esempio1_serverW  e esempio1_clientW

Cosa altro posso provare? :-?
Puoi provare a chiedere su it.comp.programmare.win32, dato che qui sei
OT! ;)
Ad ogni modo, quando chiedi li', ti consiglio di fornire molti piu'
particolari sul problema, tipo dare la parte di codice che ti da'
errore, l'errore che ti da', ecc... 
Cioe', se io scrivo: "ho winXP e il dev c++, e ho degli errori in un
prog che non riesco a risolvere!", come minimo qualcuno mi insulta! :)
Ciao,
Zeppe 

 Zeppe
Grazie dei consigli e per non avermi insultato :-)
Ciao!
- Simone -
P.s. Ehi, il link al codice l'avevo postato :-P

P.s. Ehi, il link al codice l'avevo postato :-P
Ah, gia', non li avevo notati... cmq, se metti direttamente sul mex la
parte che ti da' problemi, oltre al link, e' il massimo... ;)
Ciao,
Zeppe

"Zeppe" <zep...@MOdespammedVE.comTHIS> ha scritto nel messaggio
news:c2sv29$7bj$1...@newsreader.mailgate.org...


Grazie per avermi rimbalzato all'altro NG,
ho trovato una persona cordialissima che dopo un pomeriggio di consigli,
si deve essere esaurito e si è scaricato il DEV ed ha fatto alcune
prove.....dopo le quali mi ha fornito la soluzione su un piatto d'argento!
Grazieeeeeee Grazieeeeee Grazieeeeeeeeeeeeeee!!! :-))
- Simone -

 prove.....dopo le quali mi ha fornito la soluzione su un piatto d'argento!
Tecnicamente l'ho solo installato :-)
mantengo parecchi gb di cose "che potrebbero servire prima o poi"... :-)
Non puoi neanche immaginare quanta roba "strana" ci sia dentro :-)
--- bye

 --- bye
Ihihihihih grande! :-)
Grazie ancora ;-)
- Simone -
P.s. Ehm... Gb....gb....gb...?...no, non c'č.  GB = ?

Newsgroup: it.comp.lang.c
Titolo: controllo numerico

ciao, scusate se la domanda è banale ma non ho trovato post utili e sono
alle prime armi con questo linguaggio: mi servirebbe fare un controllo su
una stringa per sapere se ogni singolo carattere è numerico e meno; ho
fatto un ciclo di controllo char per char, ma appunto non so come
verificare.
grazie 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 grazie
#include <ctype.h>
char *s = "pippo123456";
for (char *p = s; *p != 0; p++)
{
    if (isdigit((unsigned char)*p) {
        /* fa qualcosa, *p è una cifra */
    }
}
--- bye
Newsgroup: it.comp.lang.c
Titolo: liste generiche

salve a tutti, voglio farvi una domanda che mi affligge da tempo. Se
voglio creare una normale lista concatenata cioč formata da nodi
contenenti un campo per i dati e due campi next e prev, e magari ho
bisogno di creare liste per tipi diversi, possibile che io mi debba
creare una lista per ogni tipo? Non č possibile creare una lista
generica? Ho provato a utilizzare una struttura di questo tipo come
nodo:
struct nodo
{
 void *data;
 struct nodo *prev;
 struct nodo *next;
};
Tuttavia l'utente che deve sfruttare la lista, č costretto ad effettuare
un cast del tipo corretto sul campo data ogni volta che lo usa, non č un
grosso problema ma se ci sono soluzioni migliori...
grazie

 un cast del tipo corretto sul campo data ogni volta che lo usa
Niente affatto. La conversione di un qualsiasi puntatore da e a void * 
e` automatica in C. I cast in C si usano soltanto in occasioni *molto* 
particolari, non in questa che invece e` una situazione molto comune 
(tanto comune che appunto lo standard richiede una conversione 
automatica senza l'intervento del programmatore).
L'unica accortezza che deve avere l'utente e` chiaramente quella di 
memorizzare un oggetto estratto dalla lista in un puntatore dello stesso 
tipo di quello di partenza, altrimenti sono guai.
-- 
Enrico `Trippo' Porreca

 tipo di quello di partenza, altrimenti sono guai.
grazie della risposta. Volevo chiederti un'altra cosa. Ho necessità che
quando avviene un inserimento nella lista il nuovo nodo creato non deve
semplicemente riferirsi al puntatore passato(sennò rischierei di
perderlo) ma deve ottenerne una copia, la seguente soluzione può essere
esatta?:
void push(List* list, void *data, int t_size)
{
 Node *node = (Node*)malloc(sizeof(Node));
 node->data = malloc(t_size);
 node->data = memmove(node->data, data, t_size);
 
 ...
t_size è la grandezza dell'elemento da inserire nella lista.
grazie 
 

 t_size č la grandezza dell'elemento da inserire nella lista.
Si`, e` una buona soluzione (a meno che l'oggetto inserito non sia una 
struct con campi di tipo puntatore, perche' in questo caso cio` che essi 
puntano non verrebbe copiato. Se questo sia accettabile o meno, e` una 
cosa che chiaramente dipende dal programma).
Mi permetto di insistere sull'evitare i cast superflui (in questo caso 
sul valore di ritorno di malloc).
-- 
Enrico `Trippo' Porreca

 node->data = memmove(node->data, data, t_size);
memmove serve solo quando c'e` la possibilita` che l'area di
destinazione e quella di provenienza dei dati si sovrappongono. In
questo caso la sovrapposizione non e` possibile, quindi puoi usare
memcpy (che e` generalmente piu` veloce).
Luca
-- 
Home: 
http://kronoz.cjb.net
La differenza fra l'intelligenza e la stupidita`?
All'intelligenza c'e` un limite.
Newsgroup: it.comp.lang.c
Titolo: Vettori

Anzitutto ringrazio e mi scuso per la banalità con chi legge, ma non sono
una cima;
Dal Deitel&Deitel a pag. 182, a proposito dei vettori, si legge che:
"++frequency[responses[answer]];
incrementerà in frequency il contatore appropriato secondo il valore di
responses[answer]. Per esempio quando la variabile contatore answer varra 0,
responses[answer] varrà 1, perciò ++frequency[responses[answer]]; sarà
interpretata in realtà come:
++frequency[1];
che incrementerà l'elemento uno del vettore. Quando answer varrà 1,
responses[answer] varrà 2, perciò ++frequency[responses[answer]]; sarà
interpretata come
++frequency[2];
che incrementerà l'elemento due del vettore. Quando answer varrà 2,
responses[answer] varrà 6, perciò ++frequency[frequency[answer]]; sarà
interpretata come
++frequency[6];
che incrementerà l'elemento 6 del vettore e così via."
Perchè, ad esmpio, il vettore responses[answer] vale 6 quando la variabile
contatore vale 2?
Vi ringrazio molto (...la vita dell'autodidatta è piena di insidie!:-)
Ciao!
Daryl

contatore vale 2?
La sfera di cristallo e' a riparare, scusa :)
Il discorso che ti fa' il D&D e' giusto, ma non ha senso se non
proponi lo stato iniziale degli array response[] e frequency[].
Il risultato dipende esclusivamente da cosa contengono.
Se ho capito li cerca solo di spiegarti l'ordine di valutaazione in
un'espressione complessa che coinvolge piu' array:
++array_esterno[array_interno[indice]] viene interpretato nel seguente
modo:
- prima valuti indice
- poi valuti cosa contiene /array_interno/ nella posizione /indice/, 
  chiamiamo questo valore /tmp/ per comodita'
- poi valuta /array_interno/ alla posizione /tmp/
- come ultima cosa prende questo valore e lo incrementa di uno, per 
  poi riimmagazzinarlo nella posizione array_esterno[tmp].
Cosa effettivamente conviene quella locazione e il valore che avra'
dopo dipende solo dalla situazine prima della chiamata.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 Mox
Hai ragione, allora ti spiego meglio:
il problema č realizzare un programma che conteggi i voti (che vanno da 1 a
10) di 40 studenti e che poi riassuma i responsi.
#include <stdio.h>
#define RESPONSE_SIZE 40
#define FREQUENCY_SIZE 11
main()
{
    int answer, rating;
    int responses[RESPONSE_SIZE] = {1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3,
8, 6, 10, 3, 8, 2, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5, 6, 4, 8, 6, 8, 10};
    int frequency[FREQUENCY_SIZE] = {0};
    for(answer = 0; answer <= RESPONSE_SIZE - 1; answer++)
        ++frequency[responses[answer]];
    printf("%s%17s\n", "Rating", "Frequency");
    for(rating = 1; rating <= FREQUENCY_SIZE - 1; rating++)
        printf("%6d%17d\n", rating, frequency[rating]);
    return 0;
}
Il risultato č una videata che racchiude la colonna rating coi 10 voti ed
accanto la colonna frequency con la frequenza dei voti degli studenti.
Ciao e grazie!!
Daryl
Newsgroup: it.comp.lang.c
Titolo: problema sui long

Sarò rapidissimo. Questo prog:
long x, y;
x = 1058811;
y = x*x;
printf("y = %ld\n", y)
dà come risultato y = 94269465 (sbagliato).
C'è qualcuno che sa indicarmi come avere il risultato giusto?
Grazie mille
Ciao!


                  Andrea Z.

 ha scritto nel messaggio
news:maXZ8.9266$C8.1...@tornado.fastwebnet.it...

prova a fare
printf( "%d",sizeof( long ) );
se ti da 4 come a me, allora non puoi, perche' il risultato e' piu' grande
dei 32 bit che il tipo long puo' immagazzinare.
prova ad usare il tipo double.
ciao
donCiccio



Il risultato 1.121.080.733.721 e' troppo grande per essere memorizzato
in un long.  Se il compilatore lo consente devi utilizzare interi a 64
bit, oppure passare a floating point (float, double).
ciao, acc.   
a...@libero.it

 bit, oppure passare a floating point (float, double).
E come si fa a usare interi a 64 bit?
Inoltre se usassi i double, perderei precisione? Infatti a me servirebbe
proprio il risultato esatto :(

 Inoltre se usassi i double, perderei precisione
Se usi sono soltanto interi che possono essere rappresentati con 52 bit, non
dovresti perdere precisione. Perdi solo in velocità.
Maurizio.

 long long x, y;
Grazie a questa informazione ho risolto un grosso problema.
Grazie mille!!

Grazie a questa informazione ho risolto un grosso problema.
Attento che sulla maggior parte dei compilatori non funziona.
-- 
Marco Barisione (ICQ 84277092)

 Attento che sulla maggior parte dei compilatori non funziona.
gcc-3.0.1
fortunatamente funziona :)

fortunatamente funziona :)
Il problema č quando usi un altro dei compilatori piů diffusi come
VC++ e il Borland che mi pare non supportino i long long


fortunatamente funziona :)
Ovvio: il long long e' stato introdotto con il C99 e il gcc 3 si avvia
appunto per diventare C99 compliant :)
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."
Newsgroup: it.comp.lang.c
Titolo: ancora su manipolazioni stringhe

Salve a tutti e grazie anticipatamente per l'aiuto e la pazienza.
sto cercando di imparare il c e mi sono imbattuto in un esercizio che
non riesco a risolvere.
lette delle parole da tastiera (con scanf) che formano una frase, sto
cercando il modo di poterle manipolare in vari modi: invertirle,
cambiare il senso della frase, cambiare ordine delle parole, dei
caratteri, ecc...
il problema e' il seguente:
se non erro, le stringhe altro non sono che caratteri memorizzati in una
array di tipo char. 
la prima domanda e': come posso fare per avere controllo sulle singole
parole memorizzate nell'array?
considerando come esempio la frase "ciao come stai" memorizzata come
stringa nell'array 
char frase[10];
ogni tentativo di accedere ad un qualsiasi indirizzo dell'array mi
provoca un "Bus error".
intuisco che la parola "ciao" occupi i primi 4 indirizzi (piu' il
terminatore \0 se non sbaglio...  perche' non riesco, ad esempio, a
stampare con printf il contenuto tra frase[4] e frase[8]?
e' evidente che non e' il metodo giusto.
grazie ancora


"ciao come stai" e` lunga 14 caratteri, quindi richiede un array di 
almeno 15 elementi (incluso il terminatore '\0'.
Il tentativo di accedere oltre il limite dell'array causa l'errore.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 Il tentativo di accedere oltre il limite dell'array causa l'errore.
ok, ma se io voglio stampare/girare/ecc.. solo "come" o solo "stai"
oppure "come stai", come posso fare?
intuitivamente, ad esempio per stampare "ciao" dall'array  frase[]
contenente "ciao come stai", farei
int i;
for(i=0; i <=3; i++)
   printf("%s ", frase[i]);
come con qualsiasi array.
ma qui non funziona... mi da il solito "bus error", anche se non accedo
oltre l'array (come in questo caso, dove non supero l'indirizzo 3).

    printf("%s ", frase[i]);
frase[i] è un char, quindi
for (i=0;i<4; i++)
   printf("%c",frase[i]);
oppure
   printf("%4.4s",frase);

 spazio) o solo alla fine?
Solo alla fine. Lo spazio all'interno di una stringa è un carattere come
tutti gli altri per il C, siamo noi che gli diamo il significato di
separatore di parola.

 "lespaul4son" ha scritto

se vuoi puoi anche fare un printf("%s ", &frase[i]) direi, ma nn se ti
serve

 ha scritto nel messaggio .

No, a me decisamente non serve, forse serve a chi ha aperto questo thread.
Newsgroup: it.comp.lang.c
Titolo: Modificare un file di stringhe

Salve a tutti..avrei il seguente problema:
Ho un file di testo contenente un certo numero di stringhe (quindi
anche con spazi) su ogni riga del file...Dovrei, presa in Input una
stringa, cercare questa stringa nel file e cancellarla per poi avere
il file senza questa stringa...
Vi ringrazio anticipatamante per l'aiuto!


Prova una cosa del tipo:
FILE* in=fopen("
ciccio.in
", "rt");
FILE* out=fopen("ciccio.out", "wt");
char line[MAX_LINE_LENGTH];
while(fread(line, sizeof(line), in) != NULL) {
     if(strcmp(line, stringa_da_eliminare) != 0)
	fputs(line, out);
}
fclose(in);
fclose(out);
// rimuovi 
ciccio.in
// rinomina ciccio.out in 
ciccio.in
GLi ultimi 2 commenti sono li perché non mi ricordo quali funzioni ci 
sono per fare quelle operazioni ;-)
Daniele

Ciao..ti ringrazio per l'aiuto ma non funge...sono quasi disperato