调整输出(Wordwrap可能吗?)

时间:2013-03-30 07:11:39

标签: c output

我的输出需要如下所示:

There are 8 prime numbers less than or equal to 19

2  3  5  7  11  13  17  19  

There are 95 prime numbers less than or equal to 500

2  3  5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  
73  79  83  89  97  101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  
179  181  191  193  197  199  211  223  227  229  233  239  241  251  257  263  269  271  277  281  
283  293  307  311  313  317  331  337  347  349  353  359  367  373  379  383  389  397  401  409  
419  421  431  433  439  443  449  457  461  463  467  479  487  491  499  

There are 239 prime numbers less than or equal to 1500

2  3  5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  
73  79  83  89  97  101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  
179  181  191  193  197  199  211  223  227  229  233  239  241  251  257  263  269  271  277  281  
283  293  307  311  313  317  331  337  347  349  353  359  367  373  379  383  389  397  401  409  
419  421  431  433  439  443  449  457  461  463  467  479  487  491  499  503  509  521  523  541  
547  557  563  569  571  577  587  593  599  601  607  613  617  619  631  641  643  647  653  659  
661  673  677  683  691  701  709  719  727  733  739  743  751  757  761  769  773  787  797  809  
811  821  823  827  829  839  853  857  859  863  877  881  883  887  907  911  919  929  937  941  
947  953  967  971  977  983  991  997  1009  1013  1019  1021  1031  1033  1039  1049  1051  1061  1063  1069  
1087  1091  1093  1097  1103  1109  1117  1123  1129  1151  1153  1163  1171  1181  1187  1193  1201  1213  1217  1223  
1229  1231  1237  1249  1259  1277  1279  1283  1289  1291  1297  1301  1303  1307  1319  1321  1327  1361  1367  1373  
1381  1399  1409  1423  1427  1429  1433  1439  1447  1451  1453  1459  1471  1481  1483  1487  1489  1493  1499  

相反它看起来像这样:

There are 8 prime numbers less than or equal to 19 

2 3 5 7 11 13 17 19 

There are 95 prime numbers less than or equal to 500 

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 

There are 239 prime numbers less than or equal to 1500 

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 

我该如何解决这个问题。

此代码:

void writeToOutputFile(FILE *fpout, const int *array, int n, int count){
    int i;
    fprintf(fpout, "\n \nThere are %d prime numbers less than or equal to %d \n \n", count, n);
    for(i = 0; i < count; i++){ 
        if(*(array + i) != 0){
            fprintf(fpout, "%d ", *(array + i));
        }
    }
}

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

1 个答案:

答案 0 :(得分:1)

printf返回打印在屏幕上的字符数。当达到一定限度时,您可以使用此信息打印换行符:

int width = 0;
for (/* some loop */) {
    width += printf(/*some numbers */);
    if (width > 70) {
      printf("\n");
      width = 0;
    }
}

在你的职能范围内:

void writeToOutputFile(FILE *fpout, const int *array, int n, int count){
    int i;
    int width = 0;
    fprintf(fpout, "\n \nThere are %d prime numbers less than or equal to %d \n \n", count, n);
    for(i = 0; i < count; i++){ 
        if(*(array + i) != 0){
            width += fprintf(fpout, "%d ", *(array + i));
            if (width > 70) {
              fprintf(fpout, "\n");
              width = 0;
            }
        }
    }
}