2012-12-07 82 views
0

Alrighty,所以經過一天,有點在stackoverflow上,我知道這是有用的在這個網站上:)我最終讓我的程序工作。我可以在命令行中獲得無限量的文本文件並顯示它們!所以它看起來像這樣:如何獲取輸入以在某個點切斷或環繞?


CMD控制檯

C:\ Users \用戶名\桌面> wrapfile.exe hello.txt的how.txt。 are.txt you.txt random.txt

你好你今天過得怎麼樣?我希望你做得很好。這只是一個測試,看看我能在屏幕上放多少。


現在,我wana基於這個程序。我將如何獲得這個新發現的文字環繞?就像,如果你想這樣做的話,每40個字符左右,文本跳到下一行......我們怎麼能這樣做呢?

再次感謝!

這裏是我的工作代碼:

#include <stdio.h> 
#include <stdlib.h> 


int main(int argc, char **argv) 
{ 

    int l = 1; 
     while(l != argc) 
{ 
     FILE *fp; // declaring variable 


     fp = fopen(argv[l], "rb"); 
     l++; 


    if (fp != NULL) // checks the return value from fopen 
    { 
     int i = 1; 
     do 
     { 
      i = fgetc(fp);  // scans the file 
      printf("%c",i); 
      printf(" "); 
     } 
     while(i!=-1); 
     fclose(fp); 
    } 
    else 
    { 
     printf("Error.\n"); 
    } 
} 


} 
+0

你有什麼試過的?看起來你只是想每40個字符打印一個換行符。 – Michael

+0

我的建議,實現一個字符計數器,並重新設置每40個字符,然後插入一個換行符。 – Annabelle

+0

嗯,我想把文本文件放入一個字符串,然後掃描字符串和每40個字符,添加一個\ n。這聽起來可能聽起來很野蠻,但我對C很陌生,我只是想在明年9月份開學之前學習一些新的方法:p –

回答

0

好了,我們開始吧...這看起來你有點不同,但是這是ISO/ANSI C標準的1989年。

int main(int argc, char **argv) 
{ 
    FILE *fd = NULL; 
    char linebuf[40]; 
    int arg = 1; 

    while (arg < argc) { 
     fd = fopen(argv[arg], "r"); 
     if (NULL != fd) { 
       /* fgets(char *buf, size_t buflen, FILE *fd): returns NULL on error. */ 
       while (NULL != fgets(linebuf, sizeof(linebuf), fd)) { 
        printf("%s\n", linebuf); 
       } 
       fclose(fd); 
     } else { 
       fprintf(stderr, "Cannot open \"%s\"\n", argv[arg]); 
     } 
     ++arg; 
    } 
}