2013-04-15 42 views
1

我寫了一個簡單的C程序,它讀取一個文件併產生一個包含每個單詞及其頻率的表格。C編程頻率計數器輸入/輸出

該程序的工作原理和我已經能夠在Linux上運行的終端顯示輸出,但是,我不知道如何讓生成的顯示產生包含詞頻輸出的.csv文件(因爲它在終端中)。

下面是我的程序的每個部分的代碼片段,因此您可以更好地瞭解它的結構。

int main 
{ 
    table (int *freqCount); 
    processLine (int * freqCount, char *buffer); 

    ... 
    printTable (results); 
} 

void printTable(int *results) 
{ 
    double tableAVG (int *results); 
    ... table print layout 

    for (i = 1; i < MAX_WORD_LEN; ++i) 
{ 
    if (results[i] > 0) 
     printf(" %2i%11i\n", i, results[i]); 
} 
} 

void processLine (int *results, char *buffer) 
{ 
    char *token; 
char *delimiter = " ,.;:'\"&!? -_\n\t"; 

... buffer rule 
...  token rule 

while (token != NULL) 
{ 

    results[strlen(token)]++; 
    token = strtok(NULL, delimiter); 

} 
} 

double tableAverage (int *results) 
{ 
int i; 
int words = 0; 
int sum = 0; 

for (i = 1; i < MAX_WORD_LEN; ++i) 
{ 
    ... rule 
} 

return (double)sum/(double)words; 
} 

我該如何將終端的輸出發送到.csv? 任何幫助,將不勝感激,謝謝。

當您啓動程序

回答

2

使用重定向:

/path/to/you/executable > data.csv 
+0

怎麼會是結構?你能不能更具體一點?這是你在說什麼:http://stackoverflow.com/questions/584868/rerouting-stdin-and-stdout-from-c –

+0

你使用什麼操作系統(Windows,Linux,...)?我要用控制檯重定向啓動程序。查看[windows](http://technet.microsoft.com/en-us/library/bb490982.aspx)或[linux]的鏈接(http://tldp.org/HOWTO/Bash-Prog-Intro- HOWTO-3.html)。 – Alepac

+0

我正在使用Linux Mint –

1

您可以使用>運算符程序的輸出定向到一個文件中。 您可以使用<運算符從文件中讀取程序的輸入。 您可以使用|操作員將程序的輸出鏈接到另一個程序的輸入。

樣品:寫在你的終端,

helloworld.exe > helloworld.txt