C primier plus 文件的输入/输出

C Primier Plus(第六版)第4章 编程练习 VS2019测试 第1题 /*编程练习4.1输入名和姓,以名,姓格式打印*/ #include<stdio.h> int main(void) { char name_last[40], name_first[40]; printf("What's your first name?\n"); scanf_s("%s", name_first, 40); printf("What's your last name?\n"); scanf_s("%s", name_last, 40); printf 阅读详情

编程练习第十二题,图形输出。

本题我用随机函数rand()产生随机数,进行文件的输入输出操作。仅供参考。

#include<stdio.h>
#include<stdlib.h>
#define ROWS 20
#define COLS 30

int main(void)
{
	FILE *fp;
	int i,j,n=0;
	int rand_number[ROWS][COLS];
	int numbers[ROWS][COLS];
	char crt[10]={' ','!','@','#','$','%','^','&','*','~'};
    
	//随机产生数字
	for(i=0;i<ROWS;i++)
		for(j=0;j<COLS;j++)
			rand_number[i][j]=rand()%9+1;
	printf("The rand numbers is here: \n");

	//编译输出到屏幕
	for(i=0;i<ROWS;i++)
		for(j=0;j<COLS;j++)
		{
			printf(" %d",rand_number[i][j]);
			n++;
			if(n==30)
			{
				putchar('\n');
				n=0;
			}
		}

	//编译输出到文件中
     if((fp=fopen("files.txt","w"))==NULL)
	 {
		 fprintf(stderr,"The file is not exist.");
		 exit(EXIT_FAILURE);
	 }
     for(i=0;i<ROWS;i++)
		 for(j=0;j<COLS;j++)
		 {
			 fprintf(fp," %d",rand_number[i][j]);
			 n++;
			 if(n==30)
			 {
				 fprintf(fp,"\n");//写入文件时的换行。
				 n=0;
			 }
		 }
     if(fclose(fp)!=0)
		 fprintf(stderr,"Error in closing files\n");
	 //一个文件打开来完成一个任务后,要随即关闭该文件。才可以再次打开文件进行下一个任务操作!!!


	//再从创建的文件中读出数据。
	 if((fp=fopen("files.txt","r"))==NULL)
	 {
		 fprintf(stderr,"The files is not open.");
		 exit(EXIT_FAILURE);
	 }
	 printf("Here is get numbers in files.txt:\n");
	 /*从文件读出到屏幕上面*/
     for(i=0;i<ROWS;i++)
		 for(j=0;j<COLS;j++)
			 fscanf(fp,"%d",&numbers[i][j]);
	 for(i=0;i<ROWS;i++)
		 for(j=0;j<COLS;j++)
		 {
			 printf(" %d",numbers[i][j]);
			 n++;
			 if(n==30)
			 {
				 putchar('\n');
				 n=0;
			 }
		 }
	 /*此时文件的数据已经读出到numbers数组里面了,这时再给数字赋字符。*/
	 printf("Here is graphics from numbers:\n");
	 for(i=0;i<ROWS;i++)
		 for(j=0;j<COLS;j++)
		 {
			 if(0==numbers[i][j])
				 numbers[i][j]=crt[0];
			 if(1==numbers[i][j])
				 numbers[i][j]=crt[1];
			 if(2==numbers[i][j])
				 numbers[i][j]=crt[2];
			 if(3==numbers[i][j])
				 numbers[i][j]=crt[3];
			 if(4==numbers[i][j])
				 numbers[i][j]=crt[4];
			 if(5==numbers[i][j])
				 numbers[i][j]=crt[5];
			 if(6==numbers[i][j])
				 numbers[i][j]=crt[6];
			 if(7==numbers[i][j])
				 numbers[i][j]=crt[7];
			 if(8==numbers[i][j])
				 numbers[i][j]=crt[8];
			 if(9==numbers[i][j])
				 numbers[i][j]=crt[9];
		 }
	  for(i=0;i<ROWS;i++)
		  for(j=0;j<COLS;j++)
		   {
			   printf(" %c",numbers[i][j]);
			   n++;
			   if(n==30)
			   {
				   putchar('\n');
				   n=0;
			   }
		   }
	  if(fclose(fp)!=0)
		 fprintf(stderr,"Error in closing files\n");

      //输出的字符图形输出到创建的文件中
	  if((fp=fopen("files.txt","a"))==NULL)//a为在已有的文件中追加内容。
        {
		    fprintf(stderr,"The files is not open.");
            exit(EXIT_FAILURE);
        }
      for(i=0;i<ROWS;i++)
		 for(j=0;j<COLS;j++)
		 {
			 fprintf(fp," %c",numbers[i][j]);
			 n++;
			 if(n==30)
			 {
				 fprintf(fp,"\n");//写入文件时的换行。
				 n=0;
			 }
		 }
     if(fclose(fp)!=0)
		 fprintf(stderr,"Error in closing files\n");

	return 0;
}

 

 

C Primier Plus(第六版)第9章 编程练习 VS2019测试 第1题 /*编程练习9.1 设计一个函数min(x,y),返回两个double类型值的较小值。在一个简单的驱动程序中测试该函数*/ #include<stdio.h> float min(float x, float y); int main(void) { float m , n; printf("Enter a pair of number( q to quit).\n"); while (scanf_s("%f %f", &m, &n) == 2) { pr 阅读详情

相关推荐

C primier 第五版 源码

C primier学习C语言的好书,最新的第五版,特此分享源码,为广大学习C语言者提供一个参考。一起加油啊

记录:C语言初学者阅读《C Primer Plus》的经验总结

C语言入门推荐书籍

半汀烟雨·碎菁寒 3万+

DEM数据下载,拼接,裁剪

目录: 1、数字高程模型(DEM)的数据下载 2、在ENVI里面进行拼接,生成SARscape标准格式的DEM数据3、在ArcGIS里面安装已有的矢量范文,进行掩膜裁剪 4、注意事项 数字高程模型的数据下载: 网址:http://dwtkns.com/srtm30m/ 1.对研究区域进行经纬度选择,然后进行选择下载即可 2.下载的数据是.hgt格式的,按照不同的需求进行转换,这里我是用于ENVI处理,且下载了四个,所有进行了拼接,拼接、格式转换如下 注:可能有时候需要登陆注册,点击下...

weixin_40874151的博客 2万+

C语言-C premier plus 6 (前六章)笔记和复习总结

写在前面的话:为了之后进一步学习,在家决定把C语言重新复习一遍。参考书是C premier plus 第六版。 概述一、概览二、C语言概述3数据和C、格式化输入输出四、运算符、表达式和语句五、 C控制语句:循环 一、概览 1.1 C的优点 自顶向下编程、可靠易懂、高效、可移植、较为灵活、面向编程人员 1.2 使用C语言七个步骤 1.定义程序目标 2.设计程序 3.编写代码 4.编译 // 由C编译器来完成。(编译器的是指是一段程序,调用运行期linker将C库中函数加入代码中,并转换为可执行代码) 5.运

weixin_46031140的博客 1254

单电源运放偏置电压设计:如何避免信号失真

本文详细解析了单电源运放偏置电压设计的关键技术,以LM358为例,探讨如何通过1/2 VCC偏置避免信号失真。文章从基本原理出发,揭示了双端偏置的黄金法则,并提供了常见设计陷阱的解决方案和进阶调试技巧,帮助工程师实现高保真信号放大。

weixin_29266647的博客 293

反激开关电源变压器设计实例讲解(定明芳)

内容来自《反激变压器的设计》(定明芳主讲)。 定名芳老师主要讲了10步,最后应该还有一步,线径的选择已经绕制方式。这里进行了记录整理,把一些公式来源进行了推导。所有的设计都是基于理论计算。 1.确定电源规格 2.确定工作频率和最大占空比 3.计算匝比(利用伏秒平衡原则) 此处插入解释一下伏秒平衡,根源是磁通量平衡。该原则可以用来检查MOS管耐压是否够。 4.计算初级线圈峰值电流 基于CCM模式计算的。ip1是开关管要关闭时的峰值电流,ip2是开关管开始导通时的起始电流。因为时CCM模式,所以,ip

ydgd118的博客 5万+

C_Primer第2章 C语言概述

本章介绍以下内容: 运算符 函数:main()、printf() 编写一个简单的C程序 创建整形变量,为其赋值并在屏幕上显示其值 换行字符 如何在程序中写注释,创建包含多个函数的程序,发现程序的错误 什么是关键字 2.1 简单的C程序示例 #include&lt;stdio.h&gt; int main() { int num; num = 10; printf("I a...

荆盼的博客 510

Windows报错“The system cannot find the file specified“的PATH环境变量解决方案

摘要: Windows系统中出现"The system cannot find the file specified"错误通常因PATH环境变量配置问题导致。本文提供解决方案:1)检查并修正PATH变量(通过命令行或图形界面添加缺失路径);2)确认程序安装路径及拼写无误;3)恢复误改的系统变量。示例演示了Python路径配置及无效路径清理方法,建议谨慎修改变量、使用绝对路径并定期检查。附参考表格详述操作步骤,帮助用户高效解决问题并优化系统环境。

shejizuopin的博客 3518

【C++ primer plus】函数探幽中

这里是上一篇文章的绪论,其实还要写一篇,太多知识点了,这个本书很难,只能说作者看的要废了,然后这个是基于作者的理解,然后部分后面讲的省掉了,只找重点,让我们理解这里面的重点知识引用的绪论我们可以知道结构体和类的引用的使用方法,什么时候使用引用引用我们需要注意的就是const修饰,返回值的类型,用const修饰的时候,计算机会进入哪一些操作,提示临时变量引用,类,继承我们这里需要知道基类,派生类是什么含义基类的引用作为形参的话,进行传实参的时候,既可以是派生类或者基类。

2401_86738532的博客 1436

Qt图表库三选一:Qwt、QChart、QCustomPlot实战性能对比与避坑指南

本文深入对比了Qt开发中三大主流图表库Qwt、QChart和QCustomPlot的性能与适用场景。通过实测数据展示各库在渲染效率、内存占用和功能特性上的差异,并提供针对不同项目需求的选型建议和集成避坑指南,帮助开发者高效选择最适合的Qt图表解决方案。

weixin_33691700的博客 449

CollisionLoss 设计与实现原理说明

文章摘要 CollisionLoss是一种用于自动驾驶轨迹规划的碰撞惩罚损失函数,其核心思想是用多个沿车身纵轴排列的圆盘来近似表示车辆(Oriented Bounding Box)。该设计通过圆盘间的距离计算实现碰撞检测,具有以下特点: 可微性:圆盘距离计算处处可微,便于梯度回传,而传统矩形碰撞检测(分离轴定理)不可微且计算复杂。 多圆盘设计:沿车身纵向排列多个圆盘能更精确地拟合细长车体,避免单圆盘过度膨胀导致的误报。 安全覆盖:圆盘半径经过数学推导,确保完全覆盖车体矩形,避免漏检(宁可保守)。 软惩罚机制

@bangbang的博客 95

《C++ Primier》学习笔记

前言 由于突然决定考研,所以学习编程语言的进度就停下了。话虽那么说,但距离考研还有一年半,所以我想在这不算紧张也不算轻松的阶段,挤出那么些时间,来完成这本“名著”的学习,即使我考研失败了,也有回旋的余地。 这本书的第一章C++基础我就不介绍了,本片文章适合于有过C语言或是其他语言基础的人食用,零基础也可以,但是我会省略很多基础知识,主要搭建框架。 第二章 变量和基本类型 变量 在C++中,初始化和赋值是两种完全不同的操作。初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个

m0_50816320的博客 710

linux mmap系统调用

brk/mmap linux 提供了两个比较重要的系统调用brk 和mmap,用于向内核申请相应用户空间,内核会根据系统运行状态判定是否申请新的VMA来管理新申请的用户空间,brk和mmap在整个系统中都占有非常重要的地位。 brk()系统调用被gblic进行了进一步封装成malloc接口,用户层程序一般都是通过调用malloc,由glibc间接调用brk来向内核申请用户空间。brk申请的用户空间属于堆空间 mmap系统调用也可以向内核申请用户空间,不过与brk不同的师,mmap申请的空间属于mma.

weixin_42730667的博客 1276

C Primier Plus 第十三章 文件输入/输出

1、exit()函数:关闭所有打开的文件并终止程序;在main()中exit(0)和return 0作用相同;exit(0)正常终止,非0表示非正常终止。P357 2、fopen()函数:用于打开文件。fopen(argv[1],"r")第一个参数表示要打开的文件名(更确切的说是表示该文件名的字符串的地址),第二个参数是用于指定文件打开模式的一个字符串。fopen()成功打开一个文件之后会返

zhoujiejiangchen的专栏 654

12S BMS 核心设计:基于 STM32H743+BQ34Z100 的 SOC/SOH 实现与全链路技术解析(上)

本文详细介绍了基于STM32H743和BQ34Z100的12串锂电池管理系统(BMS)设计。该系统采用主控制器+专用电量监测计架构,可实现高精度SOC(±1%)和SOH(±2%)估算,支持36V-50.4V电压范围。硬件设计包括电压/电流采样、温度测量、保护电路等模块,软件实现基于HAL库开发,采用DMA方式提高I2C通信效率。系统通过TI专利的ImpedanceTrack™算法实现三维融合估算,并具备完善的保护功能。该设计适用于电动工具、轻型电动车等中功率设备,具有精度高、响应快。

bother3000的博客 1394

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C primer plus 学习笔记 第8章 字符输入/输出 和输入验证

第8章 字符输入/输出 和输入验证 8.1 单字符IO: getchar() 和 putchar() getchar()每次读入一个字符,putchar()每次输出一个字符。 利用这两个函数,可以写出一个“复读机”。 /* echo */ #include&lt;stdio.h&gt; int main(void) { char ch; while...

一只大鸽子的博客 1523

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C Primier Plus 第4章 字符串和格式化的输入/输出

1、sizeof():给出给定字符的字节数,以字节为单位给出数据的大小。c把char类型的长度定义为一个字节,就算char类型长是16位,那么该系统一个字节就是16位。 2、printf( )函数:将输出传递给一个被称为缓冲区(buffer)的中介存储区域,存储区中的内容不断的传送到屏幕。三个条件使缓冲区内容传给屏幕:一、缓冲区满的时候;二、遇到换行符的时候(\n);三、需要输入的时候scanf

zhoujiejiangchen的专栏 700

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C++primier plus 第六章总结

if else if和 if的区别 三目运算符 简答的文件输入输出

巴塞罗那的风的专栏 622

C primier plus 第十三章 13.2标准I/O

首先,关于main(int argc,char *argv[ ])。参考百度百科中的解释。 https://baike.baidu.com/item/argc%20argv/10826112?fr=aladdin 1. argc的值是命令行参数的个数 什么是命令行参数? 在命令行下调用程序(假设程序名为2.exe) c:\2.exe file1 file2 这时的“c:\2.exe...

LPJLBJ的博客 390

《C++ Primier Plus》01

复合整形: 4.7.5 使用delete释放内存 当需要内存时,使用new来请求,当内存使用完毕后,需要释放内存,使用delete运算符,后面加上内存空间的指针(这些内村空间最初都是new分配的)。 int *ps = new int; delete ps; 如果不执行delete那么就会有内存泄漏,也就是被分配的内存再也无法使用了。内存泄漏严重,程序就会崩溃。释放过一次的内存,

Freedom! 683

C Primier Plus第三章编程练习

C Primer Plus 第三章编程练习

Sxfagsy的博客 309

《C++ Primier Plus》02

1.   数组的动态联编和静态联编 使用数组声明来创建数组时,将采用静态联编(即数组的长度在在编译时设置),使用new[]创建数组时,将采用动态联编(即运行时为数组分配空间),长度也在行时确定。这种数组使用完后,应使用delete[]释放占用的内存。 2.   数组表示法和指针表示法 用方括号数组表示法等同于对指针解除引用。 int tacos[10]; tacos[0] meas *t

Freedom! 692

C primier plus 结构和其他数据形式

14.18 编程练习.3 改写书目程序,按照不同要求顺序排序输出。 #include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;stdlib.h&gt; #define MAXTITL 40 #define MAXAUTL 40 #define MAXBKS 100 struct book { char title[MAXT...

LPJLBJ的博客 257

C Primier Plus(第六版)第6章 编程练习 VS2019测试

第1题 /*编程练习6.1创建数组存储小写字母并打印*/ #include<stdio.h> int main(void) { char letter[26],c='a'; int index; for (index = 0; index < 26; index++,c++) { letter[index]=c; } for (index = 0; index < 26; index++) printf("%c", letter[index]); prin

ptbls的博客 270
上一篇: 一个简单的文件压缩程序——在cmd窗口的实现。
下一篇: 伸缩型数组成员
兰博詹
博客等级 码龄8年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值