c语言中把不陵神同的程序分开:先在代码中找所有函数的定义,以及所有全局变量的定义,前面加上extern。
我实现了一个函数:int a(){return 0},那么它的定义就是int a()//extern省略或:我声明了一个全局变量:int b=0,那么在头文件中他就是extern int b。
可以把文件分割成为若干部分存储,并且每个文件的大小都是平均粗烂的,也可以对把若干个文件整合到一个文件中,实现对岩汪漏文件的合并。该程序主要分为菜单选择模块、文件分割模块、文件合并模块、计算文件大小模块。
顺序结构:
例如:a=3,b=5,现交换a、b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c=aa=bb=c,执行结果是a=5,b=c=3,如果改变其顺序,写成:a=bc=ab=c。
则执行结果就变成a=b=c=5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s=3.14159*r*r,输出圆的面积s。
输入文件名叫 abc.txt 你可以改名。输出文件名叫 aaX.txt X=0,1,2,3....
单个文孝吵件大小 one_size, 你可以 更改大小。
#include<stdio.h>
main(){
FILE *fp, *fout
char nameout[80]
int i,j,k,n
long size, one_size=1024
char *buff
// one_size=one_size * 0.1 //你可以 更改大小
fp = fopen ("abc.txt","rb")
if (fp==NULL) { printf("Error opening file")return 0}
fseek (fp, 0, SEEK_END) // non-portable
size=ftell (fp)
printf ("Size of abc.txt: %d bytes.\n",size) //得到大小
rewind(fp)
n=size/巧答侍one_size
buff = (char*)malloc(sizeof(char)*one_size)
for (i=0i<ni++)
{
sprintf(nameout,"aa%d.txt",i)
fout = fopen(nameout,"wb")
k = fread (buff,1,one_size,fp)
//举闷if (k != one_size) {printf("read err\n")return (0)}
fwrite(buff,1,one_size,fout)
fclose(fout)
printf("output in %s\n",nameout)
} // for i
j = size % one_size
if (j!=0) {
sprintf(nameout,"aa%d.txt",n)
fout = fopen(nameout,"wb")
k = fread (buff,1,j,fp)
// if (k != j) {printf("read err\n")return (0)}
fwrite(buff,1,k,fout)
fclose(fout)
printf("output in %s\n",nameout)
}
fclose (fp)
return 0
}
strcat()是追加字符串的函数。strcat(char[] a,char []b)即将第二个燃正字符串追加到第一个字符串末尾,第二个字符串值不变,第一个变长。
你的理解是对的 但是使用有误!追加时需要保证皮拍悔第一个字符串在加上第二个之贺孝后依旧不能溢出。在此题中,你的a[]字符串长度在追加上".txt"之后,会溢出,建议在定义a的时候写上char a[100]保证不溢出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)