Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet

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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
GM lascia a casa 1300 operai della Facto...
Microsoft Kilby: il datacenter AI che di...
HONOR Earbuds 4: un nuovo riferimento pe...
Da nemica giurata dell'AI a partner di O...
Arriva l'arma definitiva contro le zanza...
Il prato si cura da solo: MOVA LiDAX Ult...
Diventeremo più stupidi e pigri s...
Truffe e spam anche via PEC: oltre 650 c...
Cloudflare presenta PACT: token anonimi ...
Parco eolico con turbine da 220 metri in...
L'attore di Sabretooth in Marvel's Wolve...
Samsung presenta UFS 5.0 con velocità fi...
OpenAI e Trail of Bits lanciano Patch th...
Google sviluppa Audio Memory per i Pixel...
Narwal spinge forte su Amazon: Flow 2 e ...
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: 11:25.


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