【发布时间】:2013-08-26 08:40:16
【问题描述】:
要读取/写入文件,我需要在 Unix 环境中使用 C 语言的文件指针。 我知道文件名和路径,但是如何使用文件名和路径获取文件指针。
【问题讨论】:
-
因为你在unix env,所以做“man fopen”
要读取/写入文件,我需要在 Unix 环境中使用 C 语言的文件指针。 我知道文件名和路径,但是如何使用文件名和路径获取文件指针。
【问题讨论】:
#include <stdio.h>
FILE * pFile;
pFile = fopen ("myfile.txt","w");
【讨论】:
像这样导入标准输入/输出标头
#include <stdio.h>
然后为要打开的文件创建一个指针。
FILE * file_pointer;
file_pointer = fopen ("[path to file]","w");
fclose(file_pointer);
注意:如果文件与源文件不在同一目录中,请指定文件的完整路径。 完成所需操作后不要忘记关闭文件
【讨论】:
根据 ssmithstone 的帖子:
#include <stdio.h>
FILE * pFile;
/* open file and check if was successful */
if ((pFile = fopen("myfile.txt", "w")) == NULL)
{
/* couldn't open file; do some error handling if u want */
}
else
{
/* do s.th. */
/* close file */
fclose(pFile);
}
在这种情况下,w 表示写入。其他选项请查看 Yu Hao 发布的链接。
【讨论】:
看来你是C编程新手,我给你写了一个C程序,你可以分析一下,相信对你一定有帮助。
#define size 50
#include <stdio.h>
int main()
{
char name[size];
FILE *file;
file = fopen("your_file.txt","w");
printf("Please enter your first name\n");
scanf("%s",name);
fprintf(file,"%s",name);
fclose(file);
return 0;
}
详情:
w 用作文件打开模式 - 具有写入权限。fprintf() 与printf() 函数相同,但它不是在控制台上写入,而是写入到您的文件中。fclose()函数更新:
要指定路径,您可以使用 filename.fileextension 编写文件路径 例如:你可以写成
file = fopen("/home/depthgr8/Desktop/your_file.txt","w");
如果您的路径存在,这将在给定路径中创建 your_file.txt,否则将引发运行时异常 - 分段错误(核心转储)
【讨论】:
chdir 或将其添加到fopen 的参数中。提及~的问题和解决方案的奖励积分。