1.如果您说的是添加文件,那么和添加.c文件是一样的,如图中右键add files.
2.如果您说的是文件中引用头文件,使用#include
3.如果您指的是添加头文件路径,那么在tools->options->directories下面添加
话,有一个笨办法,那就是将文档从头到尾读一遍,记下换行符
的个数,就是它的行数(如果换行符不是最后一个话,
需要加1)。
代码如下:
//求指定文件的行数
int line_count(char* path)
{
FILE *f=fopen(path,"r")
int count=0//行数计数器
char c
int flag//标志
for(flag=fscanf(f,"%c",&c)flag!=EOF &&flag>0flag=fscanf(f,"%c",&c))
{
if(c=='\n')count++
}
if(c!='\n')count++
fclose(f)
return count
}
对于这个问题,你可以采用逐个读取字符,
空格之前的字符写入文件1,换行符之前的字符写入文件2,
这样自然也就将它分成了你要求的两个文档
代码如下:
//将文件path中的内容分为两部分,分别存入outFile1,outFile2,并返回文件path的行数
int split(char* path, char* outFile1,char* outFile2)
{
FILE *r=fopen(path,"r")//输入文件
FILE *w1=fopen(outFile1,"w")//输出文件1
FILE *w2=fopen(outFile2,"w")//输出文件2
if(r==NULL || w1==NULL || w2==NULL)
{
//打开文件失败,可以添加其它错误处理
return -1
}
int eof//用于指示是否已经到达文件末尾
char c//读入的字符
bool b=true//b为true时,写入输出文件1,否则写入输出文件2
int count=0//文件行数
for(eof=fscanf(r,"%c",&c)eof!=EOF &&eof>0eof=fscanf(r,"%c",&c))
{
switch(c)
{
case ' '://碰到换行符
b=false
fprintf(w1,"\n")
break
case '\n'://碰到换行符
b=true
fprintf(w2,"\n")
count++//行数加1
break
case '\r'://该字符总与\n成对出现,忽略
break
default:
if(b==true)
fprintf(w1,"%c",c)
else
fprintf(w2,"%c",c)
break
}
}
if(c!='\n')count++//最后一个字符不是换行符,应将行数加1
fclose(w1)
fclose(w2)
fclose(r)
return count
}
调用方式为:
int lineCount=split("C:\\a.txt","C:\\a1.txt","C:\\a2.txt")
祝你好运!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)