Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C编程频率计数器输入/输出_C_Csv_Word Frequency - Fatal编程技术网

C编程频率计数器输入/输出

C编程频率计数器输入/输出,c,csv,word-frequency,C,Csv,Word Frequency,我已经编写了一个简单的C程序,它读取一个文件并生成一个包含每个单词及其频率的表 该程序运行正常,我已经能够在Linux上运行的终端中获得显示的输出,但是,我不确定如何让生成的显示生成一个包含单词频率输出的.csv文件(就像在终端中一样) 下面是我的程序的每个部分的代码片段,以便您更好地理解它的结构 int main { table (int *freqCount); processLine (int * freqCount, char *buffer); ... pri

我已经编写了一个简单的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;
}
int main
{
表(整数*频率计数);
processLine(int*freqCount,char*buffer);
...
打印表(结果);
}
无效打印表(int*结果)
{
双表平均值(整数*结果);
…表格打印布局
对于(i=1;i0)
printf(“%2i%11i\n”,i,结果[i]);
}
}
无效处理行(int*结果,char*缓冲区)
{
字符*令牌;
char*delimiter=“,.;:”\“&!?-\un\t”;
…缓冲区规则
…代币规则
while(令牌!=NULL)
{
结果[strlen(token)]++;
token=strtok(空,分隔符);
}
}
双表平均值(整数*结果)
{
int i;
int字=0;
整数和=0;
对于(i=1;i
如何将终端的输出发送到.csv?
非常感谢您的帮助。

启动程序时请使用重定向:

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

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

示例:在终端中写入

helloworld.exe > helloworld.txt

这将是怎样的结构?你能说得更具体一点吗?这就是你所说的:你在使用什么操作系统(Windows、Linux等等)?我将使用控制台重定向启动程序。查看这些链接以获取或。您的.csv格式是否正确?因此,只需使用您的程序>您的csvfile。打开控制台并使用“>”运行exebutable以将输出重定向到文件