2016-09-22 6 views
0

数字のパターンを印刷しようとしています。このコードを20の入力で実行しようとすると、タブスペースがすべて間違った場所にあり、その順序に従わないことがわかります。私はタブスペースが次のヘッダーにジャンプすることを知っていますが、それを避ける方法はありますか?なぜこのCコードは動作しませんか?

#include <stdio.h> 

int main() 
{ 
    int i, n, count = 0; 
    scanf("%d", &n); 
    for(i = 1; i <= n; i++) 
    { 
     printf("%dnumber\t", i); 
     count++; 
     if(count == 4) 
     { 
      count = 0; 
      printf("\n"); 
     } 
    } 
    return 0; 
} 

注:のみタブスペースでこれを行う方法はあります代わりに、通常のホワイトスペースを利用する(すなわち、「\ tの」のみ。)。

ここに私が得ている出力があります。

enter image description here

しかし、私が欲しいのは、この

enter image description here

+2

予想される出力を示しており、障害のある出力、にしてください質問。 –

+1

__tabスペースはすべて間違った場所にあります_私は正しい場所がどこにあるか分かりません。 _彼らは命令に従わない_ - おそらく騎士の騎士団の命令は? –

+0

"number"をプリントから削除すると、 "order"で表示される可能性があります – hashdefine

答えて

1

理由ではありません。

#include <stdio.h> 

int main(void) 
{ 
    int i = 0; 
    int n = 0; 

    scanf("%d", &n); 

    for(i = 1; i <= n; i++) 
    { 
     printf("%02dnumber\t", i); 

     if(i % 4 == 0) 
      printf("\n"); 
    } 

    return 0; 
} 

出力:

16 
01number 02number 03number 04number  
05number 06number 07number 08number  
09number 10number 11number 12number  
13number 14number 15number 16number  

お手伝い願います!

4

ここにはいくつかの異なる問題があります。

しかし、あなたの主な質問のように聞こえます。「おとぎ話:私のようにタブが並んでいない」

提案ALTERNATIVE:

printf()で "フィールド長指定子" を使用して考えてみましょう:

http://www.cplusplus.com/reference/cstdio/printf/

例:

printf ("%-20s", mystring); // Will always be exactly 20 characters 
printf ("%06d", myint); // 6-digits, zero filled 
+0

ありがとうございましたが、私は他の誰かが示唆したように "\ t"を含む答えを期待していました。 – posixKing

+2

重要な点(ウェザーヴァーン氏): 'プレゼンテーションに便利なのはタブだけではない。タブ間隔は、期待どおりに表示される場合もあれば、表示される場合もあります。さらに悪いことに、タブの間隔はDOS cmdのprmopt ...またはSSHのウィンドウ..またはメモ帳...またはテキストエディタ...またはSVNまたはGit ...の間でほぼ確実に異なります。 – paulsm4

+1

"常にそうなりますあなたは '' 20.20s ''を意味しましたか? – chux

関連する問題