1

我编写了一个简单的 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?任何帮助将不胜感激,谢谢。

4

2 回答 2

2

启动程序时使用重定向:

/path/to/you/executable > data.csv
于 2013-04-15T13:50:23.963 回答
1

您可以使用 > 运算符将程序的输出定向到文件。您可以使用 < 运算符从文件中读取程序的输入。您可以使用 | 运算符将程序的输出链接到另一个程序的输入。

示例:在您的终端中写入,

helloworld.exe > helloworld.txt
于 2013-04-15T15:12:49.707 回答