请教C语言程序设计:输入同一根目录下的若干记事本中的任一个记事本名称,即可调用该记事本内的数据。

今有扩展名为txt的文本文件,其名称为a.txt,b.txt,c.txt,......,v.txt,这些文本文件中,均以记事本的形式列出了若干十进制的数据。下列C语言程序... 今有扩展名为txt的文本文件,其名称为a.txt,b.txt,c.txt,......,v.txt, 这些文本文件中,均以记事本的形式列出了若干十进制的数据。下列C语言程序代码的功能是输入其中一个文件名之后(如a.txt),就能计算出该文件名相应的数值序列。但下列C代码只能实现第16行特定的txt,就是说,无论第14行输入什么文件名,程序运转的结果只是第16行的那个txt对应的结果。请问如何改编?

附部分源程序清单(每行冒号前的两位数系代码所在行的序号):
01: /*读取文本文件内所列的十进制数字并计算*/
02: int main()
03: {
05: system("color F1");
06: char filename[81];
07: double x_position,y_position;
08: FILE *pfile;
09: int *sequence; //初始序列
10: int point_number; //数据的数量 可以考虑用宏定义最大数量
11: int i; //for循环专用变量
12: int *endlist;
13: double sumlen;
14: printf("输入txt文本文件名: ");
15: scanf("%s",&filename);
16: strcpy(filename,"a.txt");
17: if((pfile = fopen(filename,"r"))==NULL)
18: {
19: printf("没有找到txt文件%s!\n",filename);
20: return 0;
21: }
22: /*读取目标文件十进制数据信息*/
23: fscanf(pfile,"%d",&point_number);
24: for(i=0;i<point_number;i++)
25: {
26: fscanf(pfile,"%s\t%lf\t%lf",&point_list[i],&x_position,&y_position);
27: point_coordinate[i][0] = x_position;
28: point_coordinate[i][1] = y_position;
29: }
30: fclose(pfile);
31: printf("point_number=%d\n",point_number);
32: for(i=0;i<point_number;i++)
33: {
34: printf("%s %lf %lf\n",point_list[i],point_coordinate[i][0],point_coordinate[i][1]);
35: }
36: (篇幅所限,以下与该问题关联不大的数十行C代码只能省略......)
展开
 我来答
清凉一夏o0
2014-05-04 · TA获得超过272个赞
知道答主
回答量:79
采纳率:0%
帮助的人:57万
展开全部
把十六行去掉就好了,或者用//注释掉。
原因是不管你在14行输入了什么,16行都用strcpy函数把你的filename重置成了a.txt。所以结果就是你说的那样。
xoaxa
2014-05-04 · TA获得超过8611个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3503万
展开全部
#include <stdio.h>

int main() {
system("color F1");
char filename[81];
double x_position,y_position;
FILE *pfile;
int point_number;  //数据的数量 可以考虑用宏定义最大数量
int i;     //for循环专用变量
int *endlist;
double sumlen;
printf("输入txt文本文件名: ");
scanf("%s",filename); // 多了个&
// strcpy(filename,"a.txt"); // 这是什么意思?
if((pfile = fopen(filename,"r")) == NULL) {
printf("没有找到txt文件%s!\n",filename);
return 1;
}
/*读取目标文件十进制数据信息*/
fscanf(pfile,"%d",&point_number); // 第一个数是数据个数?
for(i = 0; i < point_number;i++) {
fscanf(pfile,"%s\t%lf\t%lf",&point_list[i],&x_position,&y_position);
point_coordinate[i][0] = x_position; // 数组需要提前定义
point_coordinate[i][1] = y_position;
}
fclose(pfile);
printf("point_number=%d\n",point_number);
for(i=0;i<point_number;i++) {
printf("%s %lf %lf\n",point_list[i],point_coordinate[i][0],point_coordinate[i][1]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式