有两个磁盘文件A和B,各存放一行字母,今要求把这两个文件中的信息合并…………

作者&投稿:牟转 (若有异议请与网页底部的电邮联系)
有两个磁盘文件A和B,各存放一行字母,今要求把这两个文件中的信息合并…………~

你的数组ch末尾是不是忘加0了?
(去掉排序算法后)应是这样
void main(){FILE *fp1, *fp2, *fp3;char ch[255], temp;int i = 0, j, n;if ((fp1 = fopen("file1.txt", "r")) == NULL){printf("不能打开源文件!
");return;}if ((fp2 = fopen("file2.txt", "r")) == NULL){printf("不能打开源文件!
");return;}if ((fp3 = fopen("file3.txt", "w")) == NULL){printf("不能打开源文件!
");return;}while (!feof(fp1)){ch[i++] = fgetc(fp1);}while (!feof(fp2)){ch[i++] = fgetc(fp2);}ch[i]=0; /* 这一步很重要,不然strlen会判断失误 */ n = strlen(ch);/*for (i = 0; ich[j]){temp = ch[i];ch[i] = ch[j];ch[j] = temp;}}}*/for (i = 0; i<n; i++){fputc(ch[i], fp3);putchar(ch[i]);}fclose(fp1);fclose(fp2);fclose(fp3);}

1、文件没有关闭而打开了两次

2、打开c文件在写c文件之后

3、第二次操作c文件的路径为相对路径而非绝对路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include
int main ()
{
FILE *f1,*f2,*f3;
char ch;
if(!(f1=fopen("d:\\A.txt","w")))
{
printf("error");
return 0;
}
if(!(f2=fopen("d:\\B.txt","w")))
{
printf("error");
return 0;
}
if(!(f3=fopen("d:\\C.txt","w")))
{
printf("error");
return 0;
}
ch=getchar();
while(ch!=EOF)
{
fputc(ch,f1);
ch=getchar();
}
ch=getchar();
while(ch!=EOF)
{
fputc(ch,f2);
ch=getchar();
}
fclose(f1);
fclose(f2);
fclose(f3);
f1=fopen("d:\\A.txt","r");
f2=fopen("d:\\B.txt","r");
if(!(f3=fopen("d:\\C.txt","a")))
{
printf("error");
return 0;
}
while((ch=fgetc(f1))!=EOF)
fputc(ch,f3);

while((ch=fgetc(f2))!=EOF)
fputc(ch,f3);
fclose(f1);
fclose(f2);
fclose(f3);
}


一台电脑上两个硬盘,如何让A硬盘里存放的文件自动保存到B硬盘
将二个硬盘设成磁盘阵列:RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半...

2个有文件的分区如何合并?
比如这两个分区是A和B 一般你可以先把分区A上的所有文件移动到分区B上 然后进磁盘管理把分区A删掉 然后再把分区B扩展 就是把删除分区A所得到的空间全部扩展到分区B上 不过还得具体看你的磁盘怎么分的区 先按我说的做 不行再找我。。

在电脑上开了两个用户,我用的是a,新建的是b,我不想让别人看到我放在磁盘...
或者将其他用户的权限都设置为拒绝。【注意】操作前建议先建一个文件夹和文档尝试一下。免得误操作搞得自己也访问不了就不好办了。建议:默认管理员administratior增加密码。自己建立A用户(管理员权限)。然后再建立一个公用的B用户(来宾权限)。然后删除权限的时候保留默认管理员用户和A用户。

为什么电脑里只有ACDEFG盘 没有B?
在计算机刚诞生的年代,还没有硬盘,那时数据存储主要靠软盘。软盘驱动器按照顺序占据了A和B盘符的位置,后来随着硬盘的应用,它只能按顺序占据C盘以后的盘符了。A是给3.5英寸软盘预留的 B是给5.2英寸预留的 参考资料:http:\/\/zhidao.baidu.com\/question\/1940717.html A,B两个盘符是给软驱的,过去...

电脑A、B盘哪去了??
在计算机刚诞生的年代,还没有硬盘,那时数据存储主要靠软盘。软盘驱动器按照顺序占据了A和B盘符的位置,后来随着硬盘的应用,它只能按顺序占据C盘以后的盘符了。A是给3.5英寸软盘预留的 B是给5.2英寸预留的 A,B两个盘符是给软驱的,过去有五寸软驱,安装两个软驱时就有B盘了,现在一般安一个软驱...

浅析win7系统电脑中磁盘和文件夹的相关知识
下面小编就来和大家一起学习有关Windows中磁盘和文件夹知识。推荐:win7旗舰版系统下载1、磁盘1)磁盘名用字母和英文冒号组成,其中A:和B:表示软盘,现在很少用了,打开“我的电脑”,在下面的“可移动存储设备”中,第一个就是软盘;2)硬盘一般分成几个区,从C:盘开始,C:一般也叫系统盘,里面...

如果一台电脑装两个硬盘在启动后会有几个物理磁盘??
默认 95\/98\/me 是先第一个硬盘的主分区,之后第二个硬盘的主分区,之后第一个硬盘的逻辑分区,最后第二个硬盘的逻辑分区的顺序依次分配盘符。2000\/XP\/Vista 直接就是第一个硬盘顺序排3完后继续给第二个硬盘分配盘符。硬盘的识别根据你的主板接口的识别顺序依次识别。IDE 的话,因为一个 IDE 口可以...

怎样在一台电脑安装两个硬盘
你先要想好两个硬盘你打算用哪个来装系统。如果用A硬盘来装系统,B硬盘就成了从盘。在插SATA硬盘线上,记得将A硬盘接在主板的SATA1上(主板上有标到SATA1、SATA2这些先后次序的!),将B硬盘接在其它SATA接口上,如果手头上有光驱,可利用光驱进入DOS界面或者PE系统对你新的硬盘进行分区,分区一般分成...

“我的电脑”里的ABCD盘到底有什么区别?
计算机上A不可能是硬盘的,电脑是A和B指的是软驱,硬盘分区是从C开始的,C盘一般通常理解力为系统盘,是用来存取系统文件的,D E F等盘可根据你自己的需要分配存取资料。A盘是2.5寸软驱,现在基本没用了。B盘是3.5寸软驱,早就没用了。C盘是硬盘的第一个分区,一般是装操作系统用的,非常重要。

DOS常用命令~高手能列出来给我吗?本人感激不尽!!
MD或MKDIR 建立文件夹。用法:MD 文件夹名 RD或RMDIR 删除文件夹。用法:RD 文件夹名 注意:此文件夹必须是空的。DEL或ERASE 删除文件。用法:DEL\/ERASE 文件名 COPY 拷贝文件。用法: COPY 文件名1 [文件名2] [选项]如 COPY \/B A+B C 此命令将两个二进制文件A和B合为一个文件C。TYPE ...

平阳县19792685316: 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中. -
殷欧甘油: #include "stdio.h" main() { FILE *fp; int i,j,n,ni; char c[160],t,ch; if((fp=fopen("A","r"))==NULL) {printf("file A cannot be opened\n"); exit(0);} printf("\n A contents are :\n"); for(i=0;(ch=fgetc(fp))!=EOF;i++) {c[i]=ch; putchar(c[i]); } fclose(fp); ...

平阳县19792685316: 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排 -
殷欧甘油: 1、文件没有关闭而打开了两次2、打开c文件在写c文件之后3、第二次操作c文件的路径为相对路径而非绝对路径123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 #include int ...

平阳县19792685316: 有两个磁盘文件A和B,各存放一行字母,今要求将这两个文件中的信息合并(按字母顺序排列)并输入到一个 -
殷欧甘油: 命令提示符(CMD)下,假设A、B文件在d:\txt下: d: cd\txt copy A+B C/b

平阳县19792685316: c语言:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并,输出到一个新文件C中. -
殷欧甘油: #include int main(){ FILE *fp1 = NULL; FILE *fp2 = NULL; FILE *fp3...

平阳县19792685316: C语言,有两个磁盘文件A,B,各存放一行字母,要求把两个文件信息合并并按字母顺序排列,然后存到新文件C中 -
殷欧甘油: while(fgetc(fp)!=EOF) //两个地方都在读,而赋值只有一个,造成你的错误现象 {a[i]=fgetc(fp);//这里也在读,只赋值一次,出错了, putchar(a[i]); i++; } 把读文件操作改一下,两个地方都要改:char ch=0; while( (ch=fgetc(fp))!= EOF ) { a[i]=ch ...

平阳县19792685316: 帮忙写个C程序:两个磁盘文件A和B,各放一行字母,再把两文件中的信息合并排序后输出到新文件C中. -
殷欧甘油: ) if(++i >\r' && ar[i] ; } fclose(pf);r"))) return 0;\n') if(++i > 1000)return -1; }count = iint main(int argc, char *argv[]) { FILE *pf; int i = 0,j,count,tmp, ar[1000] = {0}; if(NULL == (pf = fopen(&quot," if(NULL == (pf = fopen("B" i++) fprintf(pf; && ar[i] != ' ...

平阳县19792685316: C语言:有两个磁盘文件"A.txt"和"B.txt",各放一行字母,今要求把两个文件中的信息合并 -
殷欧甘油: FILE *fp1; FILE *fp2; FILE *fp3; char str2[128]; fp1=fopen("a.txt","r"); fp2=fopen("b.txt","r"); fp3=fopen("c.txt","w"); fscanf(fp1,"%s",str2); fprintf(fp3,"%s",str2); fscanf(fp2,"%s",str2); fprintf(fp3,"%s",str2); fclose(fp1); fclose(fp2); fclose(fp3);

平阳县19792685316: C++编程题目 文件合并 -
殷欧甘油: #include<iostream>#include<fstream> using namespace std; void main(){ ifstream fina("d:\\A.txt"); ifstream finb("d:\\B.txt"); ofstream fout("d:\\C.txt"); char sa[201],sb[201],sc[401]; //假设A、B两文件中的字符数均不超过200 fina.getline(sa,...

平阳县19792685316: 一道C语言题目,不会请教高手 -
殷欧甘油: 当然是先排序再写入!提供一种方法:#include<stdio.h>#include<string.h>#include<stdlib.h> void main() { char str[240]; FILE *fp1; FILE *fp2; FILE *fp3; char str1[120],str2[120]; int i,j; char temp; if((fp1=fopen("A.TXT","r"))==NULL) { printf("...

平阳县19792685316: 要求用C语言程序编写而不是C++...最好附上那流程图和一些说明和注释... -
殷欧甘油: #include <stdio.h>#include <stdlib.h>//D:\Test下面有1.txt和2.txt 2个文本文件.最后得到的文件为3.txt int main(int argc, char *argv[]) { FILE *fp,*fp2,*fp3; char a[200],b[200]; if((fp=fopen("D:\\TEST\\1.txt","r"))==NULL ||(fp2=fopen("D:\\TEST\\2.txt...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网