社区
C语言
帖子详情
标准C语言中如何一次读取某文件中的多行数据?(要整行读取)
ql_mf
2004-07-29 01:32:48
如果我要读取的文件中有30行,现在我想一次读取5整行,把每行的数据存到数组里,如何实现?
...全文
2009
16
打赏
收藏
标准C语言中如何一次读取某文件中的多行数据?(要整行读取)
如果我要读取的文件中有30行,现在我想一次读取5整行,把每行的数据存到数组里,如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ql_mf
2004-07-29
打赏
举报
回复
能给一个打开二进制文件,并读取64K的例子吗?
boyszz
2004-07-29
打赏
举报
回复
二进制方式打开文件,每次读64K,然后自己找分行符
可行
ql_mf
2004-07-29
打赏
举报
回复
improgrammer(无忌):
我对这些概念确实不太了解,如果你了解,请指教。
没必要发这种:“你可知道什么叫做I/O资源?”的回帖,不想回答就别回答,不用在这里说风凉话。
improgrammer
2004-07-29
打赏
举报
回复
“I/O资源占得太多了”!
你可知道什么叫做I/O资源?
loverP
2004-07-29
打赏
举报
回复
举个例子:
FILE *f; /* 你要打开的文件 */
static char buf[1024]; /* 你自己的缓冲区 */
setvbuf(f, buf, _IOFBF, 1024);
这时,你的f文件就有了1K的缓存了。注意buf一定要使全局变量会静态变量,或者在程序结束前你要手动调用fflush(),否则会出现一些问题。
另外,setbuf()是setvbuf()的一个简化版,你可以写
setbuf(f, buf);
但这个函数所能设置的缓冲区大小依赖于BUFSIZ宏所制定的大小,如果改变这个宏,有可能对其它文件产生不利的影响,所以不如自己调用setvbuf()。
参考《C语言参考手册》
loverP
2004-07-29
打赏
举报
回复
对的,如果你担心系统提供的文件缓存不够多,你还可以自己分配一块大的内存作为缓存,然后用setbuf()函数(<stdio.h>)改变文件操作的缓存区。
EternalBlue
2004-07-29
打赏
举报
回复
一次读一行和一次读多行本质上没什么区别
都是先将文件内容放到一个缓冲中
然后找换行符,再将该行的信息读出
就如pacman2000(pacman)(影子传说) 所说,fgets等是有缓冲的,因此并不会占用太多I/O
pacman2000
2004-07-29
打赏
举报
回复
1
不用操心一次读多少,fgets这些系统调用都是有系统缓冲的,并不是读一行就去读一下文件。系统也是一次读一块,然后送给fgets的,不够读才去磁盘上读。
ql_mf
2004-07-29
打赏
举报
回复
看来好像是不行,我这里每行的长度都不一样,有可能会把某行取过来一半。
herryhuang
2004-07-29
打赏
举报
回复
二进制方式打开文件,每次读64K,然后自己找分行符
peter9606
2004-07-29
打赏
举报
回复
如果楼主这样的话I/O资源恐怕就没有了 一次1w条? 不知道一条有多大 *—……%¥#·
ql_mf
2004-07-29
打赏
举报
回复
当然有区别,我现在要处理的文件有100万条记录,要是每条都读一次的话,I/O资源占得太多了。
我需要一次读1万条,进行处理。
abitz
2004-07-29
打赏
举报
回复
一次读取5整行 和 分5次,一次读一行有区别吗?
使用fgets(char * buf, int max, FILE *fp)读取以文本模式打开的文件中以"\n"结尾的一行。
kaphoon
2004-07-29
打赏
举报
回复
只能自己写
标准最多读一行
peter9606
2004-07-29
打赏
举报
回复
错了 fgets() ..
peter9606
2004-07-29
打赏
举报
回复
gets()一次读取一行
VB课程设计俄罗斯方块
前 言 visual basic继承了basi
c语言
易学易用的特点,特别适合于初学者学习windows系统编程。随着21世纪信息社会的到来,计算机在人们的工作和生活
中
的深入,要求我们越来越多地与计算机打交道,为了使用户在繁忙的日程工作
中
得到放松,于是出现了各种各样的休闲软件,如聊天工具,游戏等等。于是我们小组着手设计开始一个这样的游戏软件。通过这学期来Visual Basic的学习,我初步掌握了Visual Basi
c语言
的最基本的知识,于是在化希耀张兵等老师的指导下动手用Visual Basic编写俄罗斯方块游戏。 无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当
中
最杂乱无章的人也要把事情整理妥当。 在曾经发布过的所有游戏
中
,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。 为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用VB语言开发一个经典的俄罗斯方块游戏。 工程概况 1.1 项目名称 俄罗斯方块游戏 1.2 设计平台 VB 全称Visual Basic,它是以Basi
c语言
作为其基本语言的一种可视化编程工具。 Vb是microsoft公司于1991年退出的windows应用程序开发工具visual意思是“可视化的”。在它刚推出来时,自身还存在一些缺陷,功能也相对少一些。但是经过多年的开发研究。最近microsoft公司又推出了VB6.0版本 VB6.0运行环境:硬件,要求486以上的处理器、16MB以上内存,50MB 以上的硬盘,cd-rom驱动器,鼠标。软件:要求windows 95以上版本。 1.3程序设计思想 游戏是用来给大家娱乐的,所以要能在使用的过程
中
给大家带来快乐,消除大家的疲劳,所以我们在游戏
中
添加了漂亮的场景和动听的音乐,设置了过关升级的功能,激发大家的娱乐激情。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计
中
在一个图片框
中
构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7
中
造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个预览窗体
中
提前展示形状供用户参考,然后将展示的形状复制到游戏窗体
中
进行摆放,在游戏窗体
中
用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其
中
,方块向下的速度是有时钟控件控制的,在游戏
中
,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句对分数判断,达到一定的积分就可以升级到下一个档次。 俄罗斯方块游戏设计的主要步骤为以下10个方面: (1)游戏界面的设计。 (2)俄罗斯方块的造型。 (3)俄罗斯方块的旋转。 (4)俄罗斯方块的运动情况(包括向左,向右和向下)。 (5)俄罗斯方块的自动消行功能。 (6)游戏级别的自由选择。 (7)游戏速度的自由选择。 (8)游戏得分的计算。 (9)游戏菜单选项的设计及功能实现。 (10)游戏的背景音乐。 1.4运用的控件和主要对象 我们在设计过程
中
主要用到的控件有:command控件,image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等。 1.5主要实现的功能 我们开发的俄罗斯方块游戏,主要实现了以下几种功能: 1.可以灵活控制方块在图形框
中
运动。 2.游戏过程
中
方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。 4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。 5.游戏的得分支持积分,并且按照公式: 得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1) 这样,你同一时间消除
如何用
c语言
从txt
文件
中
读取
数据
用
C语言
从txt
文件
中
读取
数据
,可以使用C
标准
库
文件
自带的
文件
接口函数进行操作。 一、打开
文件
: FILE *fopen(const char *filename, const char *mode); 因为txt
文件
为文本
文件
, 所以打开时选择的mode应为"r"或者"rt"。 二、
读取
文件
:
读取
文件
应根据
文件
内容的格式,以及程序要求,选择
读取
文件
的函数。可以使用一种,也可以几种混用。 常用的...
C语言
字符窜的定义以及
读取
一
整行
的方法
C 库函数 - gets() C
标准
库 - <stdio.h> C
标准
库 - <stdio.h> 描述 C 库函数 char *gets(char *str) 从
标准
输入 stdin
读取
一行,并把它存储在 str 所指向的字符串
中
。当
读取
到换行符时,或者到达
文件
末尾时,它会停止,具体视情况而定。 例子 #include <stdio.h> int main() { char str[50];//定义字符串 printf("请输入一个字符串:");
java
多行
读取
txt
文件
_java 有什么方法可以把txt
文件
中
的字符按照一行一...
c语言
编程 从
文件
中
读入
多行
字符串,并在另一
文件
......
导航:网站首页 >java 有什么方法可以把txt
文件
中
的字符按照一行一...
c语言
编程 从
文件
中
读入
多行
字符串,并在另一
文件
...java 有什么方法可以把txt
文件
中
的字符按照一行一...
c语言
编程 从
文件
中
读入
多行
字符串,并在另一
文件
...相关问题:匿名网友:把txt
文件
中
的字符按照一行一行读出,用BufferedReader类的readLine()函数下
一次
写时换一行写,用Buf...
C语言
的
文件
写入、
读取
首先打开一个
文件
以写入
数据
,并通过 fprintf 函数将输入的
数据
写入
文件
中
。然后,它重新打开
文件
以
读取
数据
,并使用 fgets 函数逐行
读取
数据
进行操作。
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章