uj5u.com熱心網友回復:
30改為256
uj5u.com熱心網友回復:
檔案名輸類似d:\mydir\filename.ext這樣的全路徑
uj5u.com熱心網友回復:
修改如下,供參考:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void copyFile(char infile[],char outfile[])
{
FILE *fp1,*fp2;
char line[256];
if((fp1=fopen(infile,"r"))==NULL){
printf("Can't open file %s!\n",infile);
exit(1);
}
if((fp2=fopen(outfile,"w"))==NULL){
printf("Can't open file %s!\n",outfile);
exit(2);
}
while(fgets(line,100,fp1)!=NULL){
puts(line);
fputs(line,fp2);
}
fclose(fp1);
fclose(fp2);
}
int main()
{
//FILE *fp1,*fp2;
char infile[30],outfile[30];
//char *p=infile;
//char *q=outfile;
//int i;
printf("請輸入需要讀取的檔案名:");
gets(infile);
//for(i=0;p<infile+30;p=p+i,i++){
// if(*p=='\n')*p='\0';
//}
printf("請輸入輸出的檔案名:");
gets(outfile);
//for(i=0;q<outfile+30;q=q+i,i++){
// if(*q=='\n')*q='\0';
//}
//printf("需要讀取的檔案名為:%s",infile);
//putchar('\n');
copyFile(infile,outfile);
//fclose(fp1);
//fclose(fp2);
return 0;
}
uj5u.com熱心網友回復:
參考 3 樓 qzjhjxj 的回復: 修改如下,供參考:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void copyFile(char infile[],char outfile[])
{
FILE *fp1,*fp2;
char line[256];
if((fp1=fopen(infile,"r"))==NULL){
printf("Can't open file %s!\n",infile);
exit(1);
}
if((fp2=fopen(outfile,"w"))==NULL){
printf("Can't open file %s!\n",outfile);
exit(2);
}
while(fgets(line,100,fp1)!=NULL){
puts(line);
fputs(line,fp2);
}
fclose(fp1);
fclose(fp2);
}
int main()
{
//FILE *fp1,*fp2;
char infile[30],outfile[30];
//char *p=infile;
//char *q=outfile;
//int i;
printf("請輸入需要讀取的檔案名:");
gets(infile);
//for(i=0;p<infile+30;p=p+i,i++){
// if(*p=='\n')*p='\0';
//}
printf("請輸入輸出的檔案名:");
gets(outfile);
//for(i=0;q<outfile+30;q=q+i,i++){
// if(*q=='\n')*q='\0';
//}
//printf("需要讀取的檔案名為:%s",infile);
//putchar('\n');
copyFile(infile,outfile);
//fclose(fp1);
//fclose(fp2);
return 0;
}
while(fgets(line, sizeof(line),fp1)!=NULL)
改一下~
uj5u.com熱心網友回復:
參考 3 樓 qzjhjxj 的回復: 修改如下,供參考:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void copyFile(char infile[],char outfile[])
{
FILE *fp1,*fp2;
char line[256];
if((fp1=fopen(infile,"r"))==NULL){
printf("Can't open file %s!\n",infile);
exit(1);
}
if((fp2=fopen(outfile,"w"))==NULL){
printf("Can't open file %s!\n",outfile);
exit(2);
}
while(fgets(line,100,fp1)!=NULL){
puts(line);
fputs(line,fp2);
}
fclose(fp1);
fclose(fp2);
}
int main()
{
//FILE *fp1,*fp2;
char infile[30],outfile[30];
//char *p=infile;
//char *q=outfile;
//int i;
printf("請輸入需要讀取的檔案名:");
gets(infile);
//for(i=0;p<infile+30;p=p+i,i++){
// if(*p=='\n')*p='\0';
//}
printf("請輸入輸出的檔案名:");
gets(outfile);
//for(i=0;q<outfile+30;q=q+i,i++){
// if(*q=='\n')*q='\0';
//}
//printf("需要讀取的檔案名為:%s",infile);
//putchar('\n');
copyFile(infile,outfile);
//fclose(fp1);
//fclose(fp2);
return 0;
}
使用fputs函式會引入額外的'\n',因為fgets會有'\n',而fputs又會加'\n'
uj5u.com熱心網友回復:
大概率是路徑不對,你訪問的檔案不在你以為的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280018.html
標籤:C語言
上一篇:輸出檔案改輸出到記憶體
下一篇:想找幾個小伙伴一起學習C++