Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-03-2007, 15: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, 16: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, 16: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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 20: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, 22: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 22:43.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 09: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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 18: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, 11: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, 11: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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet

Ultima modifica di andbin : 07-03-2007 alle 11:30.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 11: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, 13: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, 14: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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 21: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, 22: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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 22: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


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Moon Base: la NASA amplia contratti e mi...
L'italiana Avio fa un passo indietro sul...
SpaceX Starship: Flight 15 punta al prim...
Smartbox colpita da un attacco hacker: e...
Un'IA risolve in 3 giorni un enigma che ...
TOP 10 Amazon weekend: tornano gli Smart...
ReactOS introduce il supporto USB 3.0: i...
TECLAST M60 a soli 159€ su Amazon: table...
Haier da 65 pollici a partire da 397€ su...
Google Pixel 11, Pro e Pro XL in offerta...
Memorie, inversione di tendenza: i PC co...
Rubati 6 pallet di hardware NVIDIA da 11...
Addio ai limiti del silicio? Ecco il dia...
Windows 11 27H2 sarà un 'cambio completo...
Hai mai notato che l'iPhone sbaglia semp...
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:04.


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