打开文件的简单C程序
我正在尝试制作一个程序来打开一个名为“write.txt”的文件打开文件的简单C程序,c,fopen,C,Fopen,我正在尝试制作一个程序来打开一个名为“write.txt”的文件 #包括 main(){ 文件*fp; fp=fopen(“write.txt”,“w”); 返回0; } 这样行吗?因为它什么也不返回。你期望它“返回”什么?它打开一个文件,在大多数平台上,如果它不存在,就会创建一个文件 您可能应该在最后关闭(fp)文件。除了main的旧变体之外,该代码实际上没有太多错误。除非出现错误,否则它应该创建该文件 但是,由于您没有检查来自fopen的返回值,因此可能会出现某种类型的错误,您对此一无所知
#包括
main(){
文件*fp;
fp=fopen(“write.txt”,“w”);
返回0;
}
这样行吗?因为它什么也不返回。你期望它“返回”什么?它打开一个文件,在大多数平台上,如果它不存在,就会创建一个文件
您可能应该在最后关闭(fp)文件。除了
main
的旧变体之外,该代码实际上没有太多错误。除非出现错误,否则它应该创建该文件
但是,由于您没有检查来自fopen
的返回值,因此可能会出现某种类型的错误,您对此一无所知
首先,我要说:
#include <stdio.h>
#include <errno.h>
int main (void) {
FILE *fp;
fp = fopen ("write.txt","w");
if (fp == NULL) {
printf ("File not created okay, errno = %d\n", errno);
return 1;
}
//fprintf (fp, "Hello, there.\n"); // if you want something in the file.
fclose (fp);
printf ("File created okay\n");
return 0;
}
输入代码以查看其运行位置。如果指定相对路径行“write.txt”,则将在此处创建文件。否则,您可以指定一个绝对路径,以确保它尝试在文件系统中的特定点创建它。我认为在开始使用文件之前,您应该学习一些C语言的基础知识。返回意味着一些数据从被调用函数传递回调用代码。在这种情况下,在程序末尾返回0。您没有对文件指针执行任何操作,只是创建了一个新文件…我想您想打印FILE write.txt的内容。(假设它包含字符)
#包括
int main()
{
文件*fp,字符ch;
fp=fopen(“write.txt”、“r”);
如果(fp==NULL)
{
printf(“打开文件时出现问题”);
出口(0);
}
其他的
{
而((ch=fgetc(fp))!=EOF)
{
printf(“%c”,ch);
}
}
fclose(fp);
返回0;
}
它不返回任何内容,因为您有一个返回0代码>作为最后一条语句?或者您的意思是fopen()
正在返回零?您希望它返回什么?您所说的退货、打印是什么意思?对不起,我的意思是fopen不退货。它不能“不退货”。在你的情况下,它到底返回了什么?对不起。我把我的话弄错了。我的意思是没有创建或打开文件。我相信在旧版本的C语言中,没有返回类型的函数被假定为返回int
。这对于C++来说是不正确的;主函数需要返回一个int
。我想从C99开始,您会发现应该显式返回一个int。C89/90允许默认值。最好关闭打开的文件;在退出时可以将继承的文件(如标准输入和标准输出)保持打开状态代码>而不是printf()
,因为它应该打印用户可读的错误,而不是难以理解的错误号。是的,我衷心同意,您最好这样做。它也与问题本身无关:-)将其视为支持代码。我知道。我把问题弄糟了。但我的意思是没有打开/创建任何文件。我试着学习K&R p160-161。K&R是学习C的一个可怕的工具,你最好用一些更现代的东西。文件是为写作而打开的,而不是为阅读而打开的。此外,您的printf不包含errno,因此您不知道打开失败的原因。使用strerror或perror。
#include <stdio.h>
#include <errno.h>
int main (void) {
FILE *fp;
fp = fopen ("write.txt","w");
if (fp == NULL) {
printf ("File not created okay, errno = %d\n", errno);
return 1;
}
//fprintf (fp, "Hello, there.\n"); // if you want something in the file.
fclose (fp);
printf ("File created okay\n");
return 0;
}
system ("cd"); // for Windows
system ("pwd") // for UNIXy systems
#include <stdio.h>
int main()
{
FILE *fp,char ch;
fp=fopen("write.txt","r");
if(fp==NULL)
{
printf("Some problem in opening the file");
exit(0);
}
else
{
while((ch=fgetc(fp))!=EOF)
{
printf("%c",ch);
}
}
fclose(fp);
return 0;
}