2016-03-22 2 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); 
} 

コードを印刷:だから明らかに'\b'をバックスペースすることはできませんfputs()()

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

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

はその代わり、私が望んでいました'\n'から最後の文字であっても、stdinから

おそらく何ですか? C++は良いでしょう、ncursesのようなライブラリはありません。参考:stdoutを扱っているA similar SO questionのユーザー入力はありません。

+0

がどのようにバックスペースが '' stdin'に影響を及ぼしstdout'ことができますか? –

+0

** line **を出力していないので、** puts(line); **のようなコードを追加する必要があります。 –

+0

あなた自身の複製をリストアップしました。そこで提供される答えが適用されます。 **あなたはできません。** – SergeyA

答えて

2

あなたがconsole codesを利用することができた場合:N列カーソル前方

#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

有望に見える; Windowsでは動作しませんが、おそらく私はそれを理解することができます –

+0

いいえ、それはWindowsで動作しません、パテオプションですか? –

0

移動は、(あなたが印刷されているものに応じて)して、1行でカーソルを上に移動します。 Exの場合:カーソルを30列分右に移動してから1行上に移動します。これはうまくいくはずです。

#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); 
} 

コードを印刷:

Enter text: (whatever)   <-- What a great text! 
関連する問題