2016-03-22 23 views
-1
#include <stdio.h> 
int main() 
{ 
    char line[100]; 

    fputs("Enter text: ", stdout); 
    fgets(line, 100, stdin); 
    putchar('\b'); //doesn't do anything 
    fputs(" <-- What a great text!", stdout); 
} 

kod baskılar: Yerinefputs()()

Enter text: (whatever) 
    <-- What a great text! 

, ben umduğu Son karakter olsa bile stdin numaralı telefondan '\n'.

Belki de herhangi bir fikir var mı? C++, ncurses gibi kütüphaneler iyi olmaz. FYI: stdout sadece kullanıcı girdisi ile ilgili olmayan A similar SO question.

+0

nasıl bir geri al '' stdin' etkileyebilir stdout' olabilir? –

+0

Çıktınız ** satır ** ** koyar (satır); ** gibi kod eklemeniz gerekir. –

+0

Kendi kopyanızı listelediniz. Verilen cevap geçerli. ** Yapamazsınız. ** – SergeyA

cevap

2

Eğer console codes yararlanabilirler edin: N sütunlarla imleç ileri

#include <stdio.h> 
#include <string.h> 

int main(void) 
{ 
    char line[100]; 
    size_t size; 

    size = (size_t)printf("Enter text: "); 
    fgets(line, 100, stdin); 
    printf("\033[A\033[%zuC", size + strlen(line)); 
    fputs(" <-- What a great text!", stdout); 
    return 0; 
} 
+0

Umut verici görünüyor; Windows üzerinde çalışmıyor ama belki de bu sorunu çözebilir –

+0

Hayır, Windows üzerinde çalışmıyor, Putty bir seçenek mi? –

0

Taşı (yazdırdığınız şeye bağlı olarak) ve daha sonra 1 satır imleci yukarı hareket ettirin. Ex için: İmleci sağa 30 sütun ve sonra 1 satır yukarı taşıyorum. Bu çalışmalı.

#include <stdio.h> 
int main() 
{ 
    char line[100]; 

    fputs("Enter text: ", stdout); 
    fgets(line, 100, stdin); 
    printf(" \033[30C"); 
    printf("\033[1A"); 
    fputs(" <-- What a great text!", stdout); 
} 

kod baskılar:

Enter text: (whatever)   <-- What a great text!