我写了这个,我没有在编译器中得到任何错误,但是当我运行它时,它不会打开任何文件。如何让它打开文件?
#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;
}
答案 0 :(得分:2)
您希望fopen
输出文件(“archivoSalida”)的模式"w"
(写)而不是"r"
(用于阅读)。参见例如http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html
您确实检查输入文件是否可以打开(if (archivo != NULL)
)。为什么不对输出文件执行相同的操作?
出现错误时,您应该输出 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。是否有可能两个文件名中的所有正斜杠(/
)都应该是反斜杠(\
)?