将'count'写为该算法输出文件的第一项

问题描述 投票:0回答:0

我正在尝试解决一本书中关于 C 中的问题解决和程序设计的指针的问题。我们正式介绍了函数

fscanf()
fprintf()
,它们分别接受输入文件指针和输出文件指针作为第一个参数功能。我们的任务是从输入文件中读取,为输入文件中存在的以浮点数编码的数字提取count,并将每个由换行符分隔的数字写入输出文件,并将计数的数字写在最后的下面已写入输出文件的编号。该算法的伪代码为:

main {
    double num = 0;     
    count = 0; 
    while (input status != -1){
       fprintf(outp, "%.2f\n", item); 
       count++
       input status = fscanf(inp, "%lf", &num);     
    } 
    // write to the output file the count
    fprintf(outp, "%d\n", count) 

    close(inp & outp); 
    return (0); 
}    

在这个特定算法的上下文中,后续问题问:“为什么我们不能在这种情况下将计数写为输出文件的第一项”。

好吧,我回答:循环基本上检查我们是否已经到达文件末尾 - 一旦到达文件末尾,指针变量基本上指向文件末尾。现在,除非我们明确定义了两个 for 循环——一个用于计算输入文件中存在的元素数量(我们的计数变量),另一个用于将输入文件中存在的所有数字写入输出文件,我们不能这样做,而不是输出元素后跟文件末尾的元素数。

我想知道我的回答是否有效

c algorithm loops pseudocode systems-programming
© www.soinside.com 2019 - 2024. All rights reserved.