本文目錄一覽:
- 1、C語言問題:有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合併,輸出到一個新文件C.
- 2、C語言文件合併
- 3、c語言合併兩個文件
- 4、怎麼把兩個不同程序合到一起?(c語言)
- 5、C語言文件怎樣合併?
C語言問題:有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合併,輸出到一個新文件C.
#includestdio.h
#includestdlib.h
int main(){
FILE *fp;
char text[50],ch;
int i,j;
if((fp=fopen(“A”,”r”))==NULL){
printf(“cannot open this file A \n”);
exit(0);
}
for(i=0;(ch=fgetc(fp))!=EOF;i++){
text[i]=ch;
putchar(ch);
}
fclose(fp);
f((fp=fopen(“B”,”r”))==NULL){
printf(“cannot open this file B \n”);
exit(0);
}
for(j=i;(ch=fgetc(fp))!=EOF;j++){
text[j]=ch;
putchar(ch);
}
fclose(fp);
fp=fopen(“c”,”w+”);
for(i=0;ij;i++){
fputc(text[i],fp);
putchar(text[i]);
}
fclose(fp);
}
C語言文件合併
設A.txt和B.txt都在當前目錄下,讀打開A.txt和B.txt,寫打開C.txt。按字符循環讀取A.txt文件一行並逐字符寫入C.txt文件,但當讀到’\n’時不寫入\n’而啟動另一內循環按字符讀取B.txt文件的一行並逐字符寫入C.txt文件,當寫入’\n’後跳出內循環停止讀取B.txt文件轉而再去讀A.txt文件的下一行……如此反覆,直到遇到A.txt文件的EOF時結束。代碼如下:
//#include “stdafx.h”//If the vc++6.0, with this line.
#include “stdio.h”
#include “stdlib.h”
int main(void){
FILE *fpa,*fpb,*fpc;
char ch;
fpa=fopen(“A.txt”,”r”);
fpb=fopen(“B.txt”,”r”);
fpc=fopen(“C.txt”,”w”);
if(!fpa || !fpb || !fpc){
printf(“Open the file(s) failure…\n”);
exit(0);
}
while((ch=fgetc(fpa))!=EOF){
if(ch==’\n’)
while(fputc(ch=fgetc(fpb),fpc),ch!=’\n’ ch!=EOF);
else fputc(ch,fpc);
}
fclose(fpc);
fclose(fpb);
fclose(fpa);
return 0;
}
c語言合併兩個文件
完整代碼如下,有任何疑問可以追問。
#include stdio.h
#include stdlib.h
int merge(char *in1,char *in2,char *out)
{
FILE *f_in,*f_out;
int n;
char buf[4096];
//打開輸出文件
f_out=fopen(out,”wb”);
if(!f_out) return 0;
//打開並讀第一個文件寫到輸出文件
f_in=fopen(in1,”rb”);
if(!f_in) return 0;
while(n=fread(buf,1,sizeof(buf),f_in))
{
fwrite(buf,1,n,f_out);
}
fclose(f_in);
//打開並讀第二個文件寫到輸出文件
f_in=fopen(in2,”rb”);
if(!f_in) return 0;
while(n=fread(buf,1,sizeof(buf),f_in))
{
fwrite(buf,1,n,f_out);
}
fclose(f_in);
fclose(f_out);
return 1;
}
int main()
{
if (!merge (“1.txt”, “2.txt”, “3.txt”))
printf(“Failed”);
else
printf(“successfully”);
return 0;
}
怎麼把兩個不同程序合到一起?(c語言)
你問的問題好大,要合併兩份獨立的c語言代碼,
第一,要把兩份代碼里的main入口合併為一個,
如何合併要看你期望合併後的main函數實現什麼樣的功能,
例如,A程序是實現計算一個數組裡的所有數相加後的和的值的功能;
B程序是實現輸出任意數字到一個txt文件的功能。那麼合併A和B程序後,
一般就是將B程序里的main函數里的實現內容追加到A程序里的main函數的實現內容之後,
就算是合併後的main函數的內容了。
希望你具體問題具體分析。
第二,合併過程中要確認兩份代碼有沒有標識符命名上的重複的問題。
例如兩份代碼里的公開函數名有沒有相同的,如果相同的話肯定要改成不同的。
第三,在確認了前兩點後,接着確認編譯鏈接不出錯。
第四,鏈接成功後,確認運行動作是否符合期望。
當然,實際項目中合併兩份代碼,往往不是上面這樣做了就可以了。還涉及到兩個程序中的功能的合併之類的比較複雜的工作。實踐出真知,希望你多做項目來收穫心得。
C語言文件怎樣合併?
#include \x0d\x0aconst int MAX_SIZE_PER_LINE = 1024;\x0d\x0a\x0d\x0aint main(int argc, char *argv[])\x0d\x0a{\x0d\x0a FILE * file_a,*file_b,*file_c;\x0d\x0a char buffer[MAX_SIZE_PER_LINE*2];\x0d\x0a file_a = fopen(“a.txt”,”r”);\x0d\x0a file_b = fopen(“b.txt”,”r”);\x0d\x0a file_c = fopen(“c.txt”,”w”);\x0d\x0a while(NULL != fgets(buffer ,MAX_SIZE_PER_LINE,file_a))\x0d\x0a {\x0d\x0a //不是最後一行肯定會有換行符,消除這個換行符 \x0d\x0a if(‘\n’ == buffer[strlen(buffer)-1]) \x0d\x0a fgets(buffer+strlen(buffer)-1 ,MAX_SIZE_PER_LINE,file_b);\x0d\x0a //對於最後一行可能沒有換行符的情況特殊處理 \x0d\x0a else\x0d\x0a fgets(buffer+strlen(buffer) ,MAX_SIZE_PER_LINE,file_b); \x0d\x0a fputs(buffer,file_c); \x0d\x0a }\x0d\x0a fclose(file_a);\x0d\x0a fclose(file_b);\x0d\x0a fclose(file_c); \x0d\x0a return 0;\x0d\x0a}\x0d\x0a\x0d\x0a/*\x0d\x0aA.txt : \x0d\x0a——-\x0d\x0aaa*\x0d\x0abb*\x0d\x0acc*\x0d\x0add*\x0d\x0aee*\x0d\x0aff*\x0d\x0agg*\x0d\x0a\x0d\x0aB.txt : \x0d\x0a——-\x0d\x0a11\x0d\x0a22\x0d\x0a33\x0d\x0a44\x0d\x0a55\x0d\x0a66\x0d\x0a77\x0d\x0a\x0d\x0aC.txt :\x0d\x0a——-\x0d\x0aaa*11\x0d\x0abb*22\x0d\x0acc*33\x0d\x0add*44\x0d\x0aee*55\x0d\x0aff*66\x0d\x0agg*77 \x0d\x0a\x0d\x0a說明: A.txt 和 B.txt 要放在可執行程序同一個目錄下。C.txt 會自動在這個目錄下生成。 \x0d\x0a*/
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199006.html