C语言程序设计经典例题100道(九)

这篇文章展示了多个C语言编程示例,涉及磁盘文件的读取、写入、复制、创建、重命名和删除等操作,以及时间的格式化输出和转换。通过这些示例,读者可以了解基本的文件I/O和时间处理技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、读取磁盘文件

 2、将数据写入磁盘文件

 3、将文件内容复制到另一文件

4、创建文件

5、创建临时文件

6、重命名文件

 7、删除文件

8、固定格式输出当前时间 

 9、当前时间转换

 10、获取当前日期与时间


1、读取磁盘文件

要求在程序执行前在任意路径下新建一个文本文档,文档内容为:“不登高山,不知天之高也;不临深谷,不知第之厚也。”编程实现从键盘中输入文件路径及名称,在屏幕上显示出该文件的内容。

#include<stdio.h>
main()
{
	FILE *fp;
	char ch,filename[50];
	printf("please input file's name;\n");
	gets(filename);
	fp=fopen(filename,"r");
	ch= fgetc(fp);
	while(ch!=EOF)
	{
		putchar(ch);
		ch=fgetc(fp);
	}
	fclose(fp);
	printf("\n");
 } 

运行结果

 2、将数据写入磁盘文件

本例将实现将数据写入磁盘文件,即在任意路径下新建一个文本文档,想该文档中写入:“好好学习,天天向上,充满信心,成功有望!”以“#”结束字符串的输入。

#include<stdio.h>
#include<stdlib.h>
main()
{
	FILE *fp;
	char ch,filename[50];
	printf("please input filename:\n");
	scanf("%s",filename);
	if((fp=fopen(filename,"w"))==NULL)
	{
		printf("cannot open file\n");
		exit(0);
	}
	
	ch= getchar();
	while(ch!='#')
	{
		fputc(ch,fp);
		ch=getchar();
	}
	fclose(fp);

 } 

运行结果

 

 3、将文件内容复制到另一文件

本实例实现将一个现有的文本文档的内容复制到新建的文本文档中。

#include <stdio.h>

int main(void)
{
 int ch;
 FILE *infp;
 FILE *outfp;
 char infilename[50];
 char outfilename[50];
 
 printf("要复制的原文件:");
 scanf("%s", infilename);
 
 printf("要粘贴的文件:");
 scanf("%s", outfilename);
 
 if((infp = fopen(infilename, "r")) == NULL)
 {
  printf("\a文件打开失败。\n");
 } 
 else
  {
  if ((outfp = fopen(outfilename, "w")) == NULL)
  {
   printf("\a文件打开失败。\n");
  }
  else
 {
   while ((ch = fgetc(infp)) != EOF)
   {
    fputc(ch, outfp);
   }
   fclose(outfp);
  }
  fclose(infp);
 }
 return 0;
}


运行结果

4、创建文件

本实例将实现文件的创建,具体要求如下:从键盘中输入要创建的文件所在的路径及名称,无论创建成功与否均输出提示信息。

#include<stdio.h>
#include<io.h>
int main()
{
	int h;
	char filename[20];
	LOOP:
		printf("please input filename:\n");
		scanf("%s",&filename);
		if(h=creat(filename,0)==-1)
		{
			printf("\n Error!Cannot vreat!\n");
			goto LOOP;
		}
		else
		{
			printf("\nthis file has created!\n");
			close(h);
		}
}

运行结果

5、创建临时文件

本例将实现临时文件的创建,并将“hello world hello C”输出到临时文件之后再读取临时文件上的内容并将其显示再屏幕上。 

#include<stdio.h>
main()
{
	FILE *temp;
	char c;
	if((temp=tmpfile())!=NULL)
		fputs("\nhello world\nhello C",temp);
	rewind(temp);
	while((c=fgetc(temp))!=EOF)
		printf("%c",c);
	fclose(temp);
}

运行结果

6、重命名文件

本例将实现重命名文件,具体要求如下:从键盘中输入要重命名的文件的路径和名称,文件打开成功后输入新的路径和名称。

#include<stdio.h>
#include<stdlib.h>
main()
{
	FILE *fp;
	char filename1[20],filename2[20];
	printf("please input the file name which do you want to change:\n");
	scanf("%s",filename1);
	printf("please input new name!\n");
	scanf("%s",filename2);
	if(rename(filename1,filename2)==0)
		printf("successfully!\n");
	else
	{
		printf("failed");
		exit(0);
	}
}

运行结果:

 7、删除文件

编程实现文件的删除,具体要求如下:从键盘中输入要删除的文件的路径及名称,无论删除是否成功都在屏幕中给出提示信息。

#include<stdio.h>
#include<stdlib.h>
main()
{
	FILE *fp;
	char filename[50];
	printf("please input the  name of the file which do you want to delete:\n");
	scanf("%s",filename);
	
	if((fp=fopen(filename,"r"))!=NULL)
	{
		printf("%s open successfully!",filename);
		fclose(fp);
	}
	
	else
	{
		printf("%s cannot open!",filename);
		exit(0);
	}
	remove(filename);
	if((fp=fopen(filename,"r"))==NULL)
		printf("\n%s has removed!",filename);
	else
	printf("error");
}


运行结果:

8、固定格式输出当前时间 

要求实现将当前时间用以下形式输出:星期 / 月 / 日 / 小时 / 分 / 秒 / 年。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	time_t Time;
	struct tm *t;
	Time=time(NULL);
	t=localtime(&Time);
	printf("Local time is:%s",asctime(t));
	return 0;
}

运行结果:

 9、当前时间转换

要求实现将当前时间转换为格林尼治时间,同时将当前时间和格林尼治时间输出到屏幕上。

#include<stdio.h>
#include<dos.h>
#include<time.h>
main()
{
	time_t Time;
	struct tm *t,*gt;
	Time=time(NULL);
	t=localtime(&Time);
	printf("Local time is:%s",asctime(t));
	gt=gmtime(&Time);
	printf("Greenwich Time is:%s",asctime(gt));
	return 0;
}

运行结果:

 10、获取当前日期与时间

#include<stdio.h>
#include<time.h>
main()
{
	time_t now;
	time(&now);
	printf("\nNow is:%s",ctime(&now));
}

运行结果:

 

说明:答案必须填写在答题卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是________。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括________。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、 整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用________。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定 4.运算符有优先级,C语言中关于运算符优先级的正确叙述是________。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是________。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行 ; D、语句一行写不下时,可在任意一空格处回车换行 。 6.下面数据中不属于字符型常量的是________。 A、“\n” B、‘\0’ C、‘A’ D、‘\t’ 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式__________ 。 A、 x%2==1 B、 x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是__________ 。 A 、 .exe B、 .C C、 .obj D、 .cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是________。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是________。 A、scanf("%f%f",&a,&b); B、scanf("%f%d",&a,&b); C、scanf("%d,%f",&a,&b); D、scanf("%6.2f%6.2f",&a,&b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值