无法用c打开文件

时间:2015-11-25 15:57:43

标签: c fopen

我应该编写一个打开excel文件的程序,读取文件中的数字,将它们乘以9.8,然后在另一个excel gile中显示答案。

我写了这个,我没有在编译器中得到任何错误,但是当我运行它时,它不会打开任何文件。如何让它打开文件?

#include <stdio.h>

int main() {
    FILE *archivo;
    FILE *archivoSalida;

    int masa;
    float peso;

    archivo = fopen("C:/Users/nacho/Documents/UNAM/Informatica/proyecto/archivoEntrada.txt", "r");
    archivoSalida = fopen("C:/Users/nacho/Documents/UNAM/Informatica/proyecto/archivoSalida.txt", "r");

    if (archivo != NULL) 
    {  
        printf("The file was opened succesully");

        while (fscanf(archivo,"%d", &masa)!= EOF)
        {
            peso=masa*9.81;
            fprintf(archivoSalida, "%f\n", peso);
        }
    }
    else
    {
        printf ("Error");
    }


    fclose(archivo);
    fclose(archivoSalida);

    return 0;
}

3 个答案:

答案 0 :(得分:2)

  1. 您希望fopen输出文件(“archivoSalida”)的模式"w")而不是"r"(用于阅读)。参见例如http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html

  2. 您确实检查输入文件是否可以打开(if (archivo != NULL))。为什么不对输出文件执行相同的操作?

  3. 出现错误时,您应该输出 errno发生的错误,例如通过perror(...)。这应该有助于找到实际问题。

答案 1 :(得分:1)

$ sudo usermod -a -G myApi $USER $ sudo chown -R $USER:myApi var/www/path_to_upload_folder/ path_to_upload_folder/files/images $ sudo chmod -R g+w var/www/path_to_upload_folder/ path_to_upload_folder/files/images 计价的文件以读取模式(archivoSalida)打开。

您还应该检查读/写函数的返回代码,以确保一切都按照需要发生。

答案 2 :(得分:0)

文件名看起来像Windows-ish。是否有可能两个文件名中的所有正斜杠(/)都应该是反斜杠(\)?