Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Il più recente robot per la pulizia domestica di Dreame, modello Aqua10 Ultra Roller, abbina un potente motore di aspirazione della polvere a un sofisticato sistema di lavaggio con rullo integrato. Il tutto governato dalla logica di intelligenza artificiale, per i migliori risultati
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
Il Gigabyte Gaming A16 offre un buon equilibrio tra prestazioni e prezzo: con Core i7-13620H e RTX 5060 Laptop garantisce gaming fluido in Full HD/1440p e supporto DLSS 4. Display 165 Hz reattivo, buona autonomia e raffreddamento efficace; peccano però le USB e la qualità cromatica del pannello. Prezzo: circa 1200€.
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


Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
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 ...
Sempre più vicino il lancio (e il...
L'incredibile ottimizzazione di Battlefi...
La NASA aprirà il contratto per i...
PS5 Pro CFI-7121: ecco tutte le differen...
SpaceX ha raggiunto il traguardo dei 10....
ROG Xbox Ally e Ally X sono care, ma il ...
Intesa Sanpaolo: stop all'app Mobile su ...
Gli USA costruiscono chip AI… ma non pos...
Grazie a Ericsson, l'italia è in ...
CMF by Nothing Buds 2a: ANC da 42 dB e o...
Il futuro di Porsche è ibrido: il...
Apple lancia i nuovi MacBook Pro e iPad ...
Free software e biologia: intervista al ...
Dongfeng Box bocciata da Euro NCAP: solo...
Parigi abbandona ufficialmente Eurodrone...
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: 19:27.


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