C++ 我的输出不会写入文件

C++ 我的输出不会写入文件,c++,file,C++,File,以下是我编写的代码: #include <stdio.h> #include<stdlib.h> int main(void) { float x;//the data value float sum=0.0;//the running total of the values readd int n=0;//the number of data values read float cube; FILE* fin = fopen("su

以下是我编写的代码:

#include <stdio.h>
#include<stdlib.h>
int main(void)
{
    float x;//the data value
    float sum=0.0;//the running total of the values readd
    int n=0;//the number of data values read
    float cube;

  FILE* fin = fopen("sumcubes.in", "r"); /* open for reading */
FILE* fout=fopen("sumcubes.c","w");

while(1){
    fscanf(fin,"%f",&x);
    if(feof(fin))break;
    n++;
    cube=x*x*x;
    sum=sum+cube;

}

fprintf(fout,"There are %d values in the file:",n);
fprintf(fout,"The sum of cubes of these values is:%f",sum);
fclose(fin);
fclose(fout);
system("sumcubes.in");
system("sumcubes.c");
system("pause");
return 0;
}
#包括
#包括
内部主(空)
{
float x;//数据值
float sum=0.0;//读取的值的运行总数
int n=0;//读取的数据值数
浮子立方体;
文件*fin=fopen(“sumcubes.in”,“r”);/*打开阅读*/
文件*fout=fopen(“sumcubes.c”、“w”);
而(1){
fscanf(fin、%f、&x);
如果(feof(fin))断裂;
n++;
立方体=x*x*x;
求和=求和+立方体;
}
fprintf(fout,“文件中有%d个值:”,n);
fprintf(fout,“这些值的立方体之和为:%f”,sum);
财务总监(财务);
fclose(fout);
系统(“sumcubes.in”);
系统(“sumcubes.c”);
系统(“暂停”);
返回0;
}

我希望它读取文件中的值,然后对每个值进行多维数据集。在对文件中的每个值进行立方运算后,它将得到这些立方值的总和。但是,输出中没有打印任何内容。

当我运行代码时(在Ken Y-N修复了打字错误之后),它工作得很好,只是三个system()调用生成了“command not found”错误消息。文件sumcubes.c包含了预期的结果,但是为什么给该文件一个.c扩展名让我感到困惑。运行可执行文件时,文件sumcubes.in可能不在当前目录中?当我尝试这样做时,我遇到了一个分段错误,但由于您没有检查fopen()的结果,如果输入文件不存在(或不在当前目录中),则可能会发生任何情况。

是否创建了该文件?您应该检查fopen()的结果以验证它是否成功。您能否解释如何通过
system()
library调用执行两个文件,这两个文件实际上并不包含可执行程序,而是一个数字列表?请使用debuggerAssuming
int main逐步完成代码(void\n
只是一个输入错误,请检查
fin
fout
的值,如果值为
NULL
,请检查
errno
。我怀疑您需要确保输入文件位于正确的目录中。顺便说一句,您可能希望在每个打印字符串的末尾添加“\n”。这似乎不是问题谢谢你的问题。