Je ne pense pas que vous devez lancer un nouveau shell pour afficher la ligne. Si ce que vous voulez est comme la boîte de commentaires, donner à ce essayer (NB: Je ne l'ai pas mis en œuvre aucun caractère d'échappement, de sorte backspace et évasion ne fonctionnera pas)
Had un peu d'aide d'ici What is Equivalent to getch() & getche() in Linux?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 255
#ifdef _WIN32
#include <conio.h>
#else
#include <termios.h>
static struct termios old, newT;
/* Initialize new terminal i/o settings */
void initTermios(int echo)
{
tcgetattr(0, &old); /* grab old terminal i/o settings */
newT = old; /* make new settings same as old settings */
newT.c_lflag &= ~ICANON; /* disable buffered i/o */
newT.c_lflag &= echo ? ECHO : ~ECHO; /* set echo mode */
tcsetattr(0, TCSANOW, &newT); /* use these new terminal i/o settings now */
}
/* Restore old terminal i/o settings */
void resetTermios(void)
{
tcsetattr(0, TCSANOW, &old);
}
/* Read 1 character - echo defines echo mode */
char getch(int echo)
{
char ch;
initTermios(echo);
ch = getchar();
resetTermios();
return ch;
}
#endif // _WIN32
int main()
{
char arrayInput[MAXLEN + 1];
static char printArray[MAXLEN + 15];
static char tmp[5];
char c;
int i,len=0;
printf("Begin\n");
for(i=0;i<MAXLEN;i++)
{
putchar('\r');
c = getch();
for(len=0;len<MAXLEN;len++)
putchar(' ');
putchar('\r');
arrayInput[i]=c;
arrayInput[i+1] = '\0';
strcpy(printArray,"");
strcpy(printArray,arrayInput);
strcat(printArray," Size is:: ");
sprintf(tmp,"%d",i+1);
strcat(printArray,tmp);
printf("%s",printArray);
}
return 0;
}
Qu'avez-vous essayé? Comment ça n'a pas fonctionné? Pensez-vous que vous voulez avoir deux threads indépendants en cours d'exécution? Est-ce que ça doit être une fenêtre différente? – Floris
Je peux déjà obtenir une information sur la longueur de la chaîne. L'utilisateur commence à écrire quelque chose sur l'invite de commande (j'ai utilisé la fonction en boucle getchar()). Quand un nouveau caractère est extrait de l'utilisateur, le thread est activé et incrémente le # des caractères. Le problème est le suivant: Je veux afficher la taille du caractère pendant que l'utilisateur tape. Je peux imprimer les données à l'écran, mais cela se passe juste quand l'utilisateur tape. Donc, je veux utiliser une fenêtre différente .. (En fait, c'est exactement la même idée avec cette boîte de commentaire, ## caractères gauche est écrit quand j'écris). – skynyrd