#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[])
{
int i,j,filelen;
char *buffer;
char temp;
FILE *fp;
if(argc!=2)
{
printf("error!\n");
exit(0);
}
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("open %s error!",argv[1]);
exit(0);
}
fseek(fp,0L,SEEK_END);
filelen=ftell(fp);
buffer=(char*)malloc(sizeof(char)*filelen); //申请缓存区
fseek(fp,0L,SEEK_SET);
printf("文件大小为: %d字节\n",filelen);
fread(buffer,1,filelen,fp);//第二个参数表示每次读数据的大小
fclose(fp);
j=filelen-1;
for(i=0;i<j;i++,j--) //逆序函数
{
temp=buffer[i];
buffer[i]=buffer[j];
buffer[j]=temp;
}
if((fp=fopen(argv[1],"w"))==NULL)
{
printf("open %s error!",argv[1]);
exit(0);
}
fwrite(buffer,1,filelen,fp); //第二个参数为每次写数据的大小
fclose(fp);
return 0;
}
输入gcc -Wall -o cf cf.c 后怎么做????
cf.exe 1.txt?
gcc cf.exe 1.txt?
user/1.txt?
之后怎么做求解答????
linux下是不看文件后缀名的,并且这里的可执行文件也不是.exe
你用gcc -Wall -o cf cf.c这里cf就是生成的可执行文件名了
运行时输入:./cf 1.txt 要保证有这个1.txt文件,因为你第一个是以r的方式打开
argc 就是你命令行输入参数的个数,这里就是2个,一个是./cf 一个是1.txt
argv[0]就是./cf,argv[1]就是1.txt以此类推
运行起来还可以,就是最后1.txt 文件 要么无法打开,要么乱码。。
$ strace ./cf
$strace -c ./cf
$time ./cf
后,要不要在写个什么代码???
必须乱码
因为你是用的fread/fwrite写的
写到文件中的都是二进制格式
你可以用cat 1.txt来查看一下
如果要写文本可以用fprintf()