关于一个C语言的文件读取问题,在线等!!!!,麻烦帮帮忙 程序如下
#include<stdio.h>#include<stdlib.h>#defineN200intmain(){FILE*fp;charstr[N];if((fp=fop...
#include <stdio.h>
#include <stdlib.h>
#define N 200
int main()
{
FILE*fp;
char str[N];
if((fp=fopen("同学通讯录系统的数据.txt","a"))==NULL)
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
gets(str);
fputs(str,fp);
fclose(fp);
if((fp=fopen("同学通讯录系统的数据.txt","r"))==NULL);
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
fgets(str,N,fp);
puts(str);
flcose(fp);
return 0;
}
运行结果如下 展开
#include <stdlib.h>
#define N 200
int main()
{
FILE*fp;
char str[N];
if((fp=fopen("同学通讯录系统的数据.txt","a"))==NULL)
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
gets(str);
fputs(str,fp);
fclose(fp);
if((fp=fopen("同学通讯录系统的数据.txt","r"))==NULL);
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
fgets(str,N,fp);
puts(str);
flcose(fp);
return 0;
}
运行结果如下 展开
2个回答
展开全部
检查下这个文件是否存在 同学通讯录系统的数据.txt
如果不存在 用a模式打开会出错的。
如果确定存在,那么先用绝对路径试一下
比如 C:\\同学通讯录系统的数据.txt
如果这样可以了,就再改相对路径,必须是基准与你的运行路径。
一般是你源文件所在目录,exe文件所在目录,或者是Project文件所在目录。
这个和你编译器有关。
如果搞不懂,那就用绝对路径好了。
如果不存在 用a模式打开会出错的。
如果确定存在,那么先用绝对路径试一下
比如 C:\\同学通讯录系统的数据.txt
如果这样可以了,就再改相对路径,必须是基准与你的运行路径。
一般是你源文件所在目录,exe文件所在目录,或者是Project文件所在目录。
这个和你编译器有关。
如果搞不懂,那就用绝对路径好了。
追问
谢谢你的回答,但是请问怎么使用绝对路径(麻烦详细点,我是新手,见谅见谅),我创建的文件是存在的,是要把它放在指定的地方吗?
追答
比如你把它放在C盘根目录下 就使用下面这样的程序
#include <stdio.h>
#include <stdlib.h>
#define N 200
int main()
{
FILE*fp;
char str[N];
if((fp=fopen("C:\\同学通讯录系统的数据.txt","a"))==NULL)
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
gets(str);
fputs(str,fp);
fclose(fp);
if((fp=fopen("C:\\同学通讯录系统的数据.txt","r"))==NULL)//这里的分号删掉
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
fgets(str,N,fp);
puts(str);
flcose(fp);
return 0;
}
展开全部
//修改代码如下,看注释
#include <stdio.h>
#include <stdlib.h>
#define N 200
int main()
{
FILE*fp;
char str[N];
if((fp=fopen("同学通讯录系统的数据.txt","a"))==NULL)
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
gets(str);
fputs(str,fp);
fclose(fp);
if((fp=fopen("同学通讯录系统的数据.txt","r"))==NULL) //后面多了一个分号;
{
printf("Failure to open 同学通讯录系统的数据.txt!\n");
exit(0);
}
fgets(str,N,fp);
puts(str);
fclose(fp); //笔误??
return 0;
}
追问
非常感谢你的回答,但是我原来创建的.txt是有东西的啊,怎么会没有在了呢?麻烦你啦
追答
直接用你的程序做调试,没有发现你上面说的文件没了的问题。
程序中设计的所有文字都在一行上显示,所以看起来不是很愉快。
在我的电脑中还有一份你程序生成的 同学通讯录系统的数据.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询