华清远见作业第二十天

使用fets统计一个文件的行号

代码:

#include
#include
#include
int main() 
{
	char filename[50];//文件名字
	char line[100];//字符搬运工
	int line_count = 0;//行计数
	printf("请输入要统计行数的文件名:");
	scanf("%s", filename);
	// 打开文件
	FILE *fp = fopen(filename, "r");
	if (NULL == fp) 
	{
	        perror("fopen r");
        	return -1;
    }
    // 逐行读取文件
    while (fgets(line, sizeof(line), fp))
	{
        	line_count++;
    }
	printf("文件 %s 的行数为 %d.\n", filename, line_count);
	// 关闭文件
    fclose(fp);
	return 0;
}

运行效果

华清远见作业第二十天_第1张图片

 使用fgets\fputs拷贝两个文件

代码

#include
#include
#include
int main() 
{
	char filename[50];//源文件文件名字
	char filenames[50];//拷贝到的文件名字
	char buf[100];//字符搬运工
	printf("请输入源文件文件名:");
	scanf("%s", filename);
	printf("请输入要拷贝到的文件名:");
	scanf("%s", filenames);
	// 打开文件1,只读的形式
	FILE *fp = fopen(filename, "r");
	if (NULL == fp) 
	{
	        perror("fopen r");
	        return -1;
	}
	//打开文件2,只写的形式,被写入的文件
	FILE *fq = fopen(filenames, "w");
	if (NULL == fq) 
	{
	        perror("fopen w");
	        return -1;
	}
	while(1)
	{	
		char *ptr=fgets(buf,sizeof(buf),fp);//提取fp文件到buf
		if(ptr==NULL)//判断是否结束
		{
			break;
		}
		printf("写入的内容为:%s",buf);
		fputs(buf,fq);//利用fputs读取buf写入fq文件一次
	}
    	fclose(fp);//关闭文件
	fclose(fq);//关闭文件
	return 0;
}

运行效果:

华清远见作业第二十天_第2张图片

思维导图

 

你可能感兴趣的:(华清远见作业,linux,c语言)