Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-03-2007, 14:59   #1
alberto.frz
Member
 
L'Avatar di alberto.frz
 
Iscritto dal: Dec 2004
Città: Venezia
Messaggi: 192
[C] scrivere nella stessa posizione?

ciao, ho un piccolo problema con il C.

nel mio prog, ad un certo punto dovrei aspettarmi un numero intero compreso tra 1 e 6. Nel caso in cui il numero inserito non sia valido, il prog mi ripropone la possibilità di inserire un altro numero andando a capo col cursore...e fin qui tutto ok...

vorrei invece che se il numero inserito fosse non corretto il cursore rimanesse nella stessa posizione, dandomi la possibilità di riscrivere sopra alla immisione precedente...

scusate per la spiegazione poco lucida...

ciao
__________________
alberto.frz è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 15:00   #2
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
devi fare cosi:

Codice:
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>  /* Per i socket PF_UNIX */
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#include "common.h"   /* nomi delle pipe */

int main (int argc, char * argv []) {

  int clientFd, serverLen;
  int digit, number, i, result;

  struct sockaddr_un serverUNIXAddress;
  struct sockaddr* serverSockAddrPtr;

  serverSockAddrPtr = (struct sockaddr*) &serverUNIXAddress;
  serverLen = sizeof (serverUNIXAddress);

  /* Crea un socket UNIX, bidirezionale, protocollo di default */
  clientFd = socket (PF_UNIX, SOCK_STREAM, DEFAULT_PROTOCOL);
  serverUNIXAddress.sun_family = PF_UNIX; /* Dominio del server */
  strcpy (serverUNIXAddress.sun_path, SOCK_NAME); /* Nome del server */

  do { /* Stabilisce la connessione con il server */
     result = connect (clientFd, serverSockAddrPtr, serverLen);
     if (result == -1) sleep (1); /* Se fallisce, riprova dopo breve attesa */
  }   while (result == -1);

  /* invia la sequenza da convertire */
  for (i=1; i<argc; i++) {
    digit=atoi(argv[i]);
    write(clientFd, &digit, sizeof(int));
  }
  /* ... e chiude con il numero di fine sequenza */
  digit=EOS;
  write(clientFd, &digit, sizeof(int));

  /* Infine attende il risultato */
  read(clientFd, &number, sizeof(int));

  printf("Il risultato e` : %d\n", number);

  return 0;
}
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 15:30   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da alberto.frz Guarda i messaggi
ciao, ho un piccolo problema con il C.

nel mio prog, ad un certo punto dovrei aspettarmi un numero intero compreso tra 1 e 6. Nel caso in cui il numero inserito non sia valido, il prog mi ripropone la possibilità di inserire un altro numero andando a capo col cursore...e fin qui tutto ok...

vorrei invece che se il numero inserito fosse non corretto il cursore rimanesse nella stessa posizione, dandomi la possibilità di riscrivere sopra alla immisione precedente...
Se hai premuto un invio (e lo devi fare certamente, altrimenti come confermi l'input?) il cursore è già andato sulla riga successiva. Quindi si dovrebbero usare delle funzioni specifiche e non standard per leggere la posizione del cursore e spostarlo più sopra dove vuoi.

Quote:
Originariamente inviato da IspiCiosa Guarda i messaggi
devi fare cosi:
Ehh??? Che è tutta 'sta roba!?
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 19:37   #4
alberto.frz
Member
 
L'Avatar di alberto.frz
 
Iscritto dal: Dec 2004
Città: Venezia
Messaggi: 192
ho capito, giustamente, io le leggo l'input con scanf che va da sola a capo dopo aver premuto invio...proverò a cercare nella rete graize.
__________________
alberto.frz è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 21:39   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da andbin Guarda i messaggi
Ehh??? Che è tutta 'sta roba!?
andbin, mi meraviglio di te

non si vede? quello è palesemente un programma che, ehm, dunque... crea un socket TCP verso non si sa quale indirizzo presumibilmente hardcoded (pessimo), effettua stupidamente infiniti tentativi di connessione bloccandosi per un secondo tra l'uno e l'altro nell'illusa speranza che in un secondo l'host torni up o che l'amministratore abbia aperto quel target sul firewall, invia all'host remoto dei numeri potenzialmente errati (la atoi non distingue tra "0" ed input non valido e non gestisce l'overflow) credendo peraltro di inviargli singole cifre, gli manda un simbolo conclusivo a gestione speciale che introduce una potenziale vulnerabilità*, riceve un intero dall'host remoto, ed infine lo stampa su schermo. a proposito, se nel mentre cade la connessione il programma stampa un numero senza senso.

non lo trovi pertinente?

* il simbolo speciale potrebbe essere introdotto dalla linea di comando

Ultima modifica di 71104 : 05-03-2007 alle 21:43.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 08:24   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 71104 Guarda i messaggi
andbin, mi meraviglio di te

non si vede?
Sì ... ma ... non capisco cosa possa c'entrare (l'uso dei socket) con la richiesta iniziale di alberto.frz, cioè il poter riposizionare il cursore nel punto dove si era fatto l'input.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 17:32   #7
Hall999
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 3571
Quote:
Originariamente inviato da andbin Guarda i messaggi
Sì ... ma ... non capisco cosa possa c'entrare (l'uso dei socket) con la richiesta iniziale di alberto.frz, cioè il poter riposizionare il cursore nel punto dove si era fatto l'input.
forse ti sta prendendo per il culo?
Hall999 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 10:08   #8
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da IspiCiosa Guarda i messaggi
devi fare cosi:

Codice:
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>  /* Per i socket PF_UNIX */
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#include "common.h"   /* nomi delle pipe */

int main (int argc, char * argv []) {

  int clientFd, serverLen;
  int digit, number, i, result;

  struct sockaddr_un serverUNIXAddress;
  struct sockaddr* serverSockAddrPtr;

  serverSockAddrPtr = (struct sockaddr*) &serverUNIXAddress;
  serverLen = sizeof (serverUNIXAddress);

  /* Crea un socket UNIX, bidirezionale, protocollo di default */
  clientFd = socket (PF_UNIX, SOCK_STREAM, DEFAULT_PROTOCOL);
  serverUNIXAddress.sun_family = PF_UNIX; /* Dominio del server */
  strcpy (serverUNIXAddress.sun_path, SOCK_NAME); /* Nome del server */

  do { /* Stabilisce la connessione con il server */
     result = connect (clientFd, serverSockAddrPtr, serverLen);
     if (result == -1) sleep (1); /* Se fallisce, riprova dopo breve attesa */
  }   while (result == -1);

  /* invia la sequenza da convertire */
  for (i=1; i<argc; i++) {
    digit=atoi(argv[i]);
    write(clientFd, &digit, sizeof(int));
  }
  /* ... e chiude con il numero di fine sequenza */
  digit=EOS;
  write(clientFd, &digit, sizeof(int));

  /* Infine attende il risultato */
  read(clientFd, &number, sizeof(int));

  printf("Il risultato e` : %d\n", number);

  return 0;
}
o anche cosí:
Codice:
fprintf(stdout,"%c[%d;%dH",27,y,x);
dove y e x sono le coordinate dello schermo
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 10:28   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Codice:
fprintf(stdout,"%c[%d;%dH",27,y,x);
Su Linux è OK, su Windows no. Sui "vecchi" Win95/98 si poteva caricare ANSI.SYS che gestiva questi escape.
Comunque bastava scrivere: printf ("\033[%d;%dH", y, x);
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)

Ultima modifica di andbin : 07-03-2007 alle 10:30.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 10:30   #10
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da andbin Guarda i messaggi
Su Linux è OK, su Windows no. Sui "vecchi" Win95/98 si poteva caricare ANSI.SYS che gestiva questi escape.
cooooosa ? M$ vi ha tolto anche queste ?
boh ? contenti voi
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 12:41   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da andbin Guarda i messaggi
Su Linux è OK, su Windows no. Sui "vecchi" Win95/98 si poteva caricare ANSI.SYS che gestiva questi escape.
Comunque bastava scrivere: printf ("\033[%d;%dH", y, x);
non la sapevo sta cosa delle coordinate messe tra [ ; H

ma è standard del C??
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 13:03   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 71104 Guarda i messaggi
ma è standard del C??
No non c'entra il C (o qualunque altro linguaggio).
Vedere <qui> e <qui>.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 20:52   #13
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Per il supporto ANSI in Windows NT/2k/XP, modificare il file C:\WINDOWS\SYSTEM32\CONFIG.NT aggiungendo la seguente riga alla fine del file:

device=%SystemRoot%\system32\ansi.sys

Creare quindi un link a C:\WINDOWS\SYSTEM32\COMMAND.COM.

Eseguire il link, ed ecco il supporto ANSI in XP.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 21:13   #14
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da repne scasb Guarda i messaggi
Per il supporto ANSI in Windows NT/2k/XP, modificare il file C:\WINDOWS\SYSTEM32\CONFIG.NT aggiungendo la seguente riga alla fine del file:

device=%SystemRoot%\system32\ansi.sys

Creare quindi un link a C:\WINDOWS\SYSTEM32\COMMAND.COM.

Eseguire il link, ed ecco il supporto ANSI in XP.
"Piccolo" dettaglio: poi il supporto degli escape ANSI in effetti c'è ma solo per le applicazioni DOS (16 bit), non di certo per le applicazioni Win32.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 21:17   #15
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Quote:
Originariamente inviato da andbin
"Piccolo" dettaglio: poi il supporto degli escape ANSI in effetti c'è ma solo per le applicazioni DOS (16 bit), non di certo per le applicazioni Win32.
Meglio di niente.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Le sonde spaziali ESA ExoMars e Mars Exp...
Roscosmos: static fire per i propulsori ...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v