标准C语言中如何一次读取某文件中的多行数据

作者&投稿:连妮 (若有异议请与网页底部的电邮联系)
如何用c语言读取文本文件中的多行数据~

1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:
#include#includevoid main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; //第三行,第四列 FILE *fp = fopen("data.txt","r"); while(fgets(c,100,fp)){ //读入每行数据 i--; if(i==0) strcpy(a,c); //读到第三行数据 b[k++]=c[j-1]; //把每行的那列字符拷到b中 } b[k]=0; printf("第%d行数据:%s
",i,a); printf("第%d列数据:%s
",j,b); fclose(fp);}

当把链表已经确定的时候,就可以依次存入文件。和平时链表的遍历一样,每读取一个节点内容就进行一次存入

有很多种方式可以一次性读取多行数据,具体如何使用,取决于文件内容格式。

一、以fscanf读取。

fscanf读取时,默认会到空白字符截止。所以如果文件中不存在其它空白字符,那么可以以fscanf实现一次性读取多行的效果,比如文件中存储为

1
2.3
name

那么要一次性读取这三行数据,可以使用:

int a;
float b;
char c[20];
fscanf(fp, "%d%f%s",&a,&b,c);

其中,fp为打开该文件的文件指针, 分别将三行数据读取到三个变量a b c中。 

二、以fread读取。 

fread可以一次性读取若干个数据块,所以如果要读取的文件内容总长度已知,那么可以通过fread一次性读取多行。如

this is
for
my test
only.

以上数据分4行,包括换行符在内共计25字节。

此时可以使用如下代码一次性读取四行:

char buf[100];
fread(buf, 25, 1, fp);

其中fp为打开该文件的文件指针。



sscanf();
用来读取多行数据;


C语言如何一次输入多个字符串,然后再输出
1、首先打开visual studio软件,新建一个C语言文件。2、接着在C语言文件的顶部导入库内。3、接着运用scanf函数接收用户输入的字符串。4、然后我们利用printf函数打印一下用户输入的内容。5、运行程序以后就会弹出如下图所示的CMD界面,我们输入内容就会自动接收到,然后原样输出内容。6、最后如果你接收其他...

C语言中怎么准确地给变量确定数据类型
int a; \/\/ a 是 int 型,你懂的;int a[10]; \/\/ a 是 int[10],也就是 10 个 int 的数组类型;int *pi; \/\/ pi 是 int*,也就是 pi 可以放一个int变量的地址;又称int指针类型 int *pj[10]; \/\/ 根据[] 的优先级高于*,那么改写一下,int* ( pj[10] );...

c语言中a为整数,如何求a\/5的准确值?
a = 7;res = (float)a\/5;printf("\\n %d\/5=%0.1f \\n\\n",a,res);

c语言如何只准数字输入scanf
scanf() 返回 正确地读入的数据个数。例如, 下面要求输入3 个 数据 x,f,d,scanf 如果 返回值 不等于 3 就 要求 重新 输入。include <stdio.h> include <stdlib.h> main(){ int x;float f;double d;while ( scanf("%d %f %lf",&x,&f,&d) != 3) { printf("error, please i...

如何准确理解C语言的下标运算符“[]”和取内容运算符“*”
3)运算的优先级别。4)运算的结合方向(即结合性)。5)所得结果值及其数据类型。很多介绍C语言的教材和教学参考书以及专著,都指出C语言将用于括起下标的方括号“[j”处理为运算符,也就是说,方括号“[]”也是C语言的一个运算符。但都没有全面。准确地介绍这个运算符在上述五个方面的特性。本...

C语言中怎样尽量多得输出数值准确位数?
printf("%.10f \\n",6.\/3);干嘛要用%g啊,用f就可以了啊,右边可以像上面那样,也可以 printf("%.10f\\n",6*1.0\/3);主要是注意 类型转换 就可以了,最后再以 浮点型 打印出来,比如printf("%5.6f\\n",6*1.0\/3);就表示最后打印一个 浮点数 ,左边有效数字为5伟,右边有效数字为6伟...

c语言中怎样实现输出内容的清除呢?
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:printf("test system cls");system("cls");。3、编译器运行test.cpp文件,此时成功通过system("cls") 进行了输出内容的清屏。

C语言 每一次循环间隔的时间。for while这类,每60s循环一次,怎么用时 ...
每次循环进程休眠60秒

c语言如何建时间校准来和电脑一致?
int main(){ time_t timep;struct tm *time_ptr;time(&timep);time_ptr = localtime(&timep);……} 上面的……部分,你只需去读取time_ptr所指向的时间结构体的内容就ok了,这个结构体的定义如下:struct tm { int tm_sec; \/* seconds *\/ int tm_min; \/* minutes *\/ int tm...

C语言中如何保留一位小数点
可以通过printf函数中的输出格式说明符来实现保留一位小数点,要保留一位小数就用printf("%.1f",x),例子如程序中给出那样。例子如下:直接编译,程序输出结果如下图所示:

谷城县18854844154: C语言中怎么从文件中读取特定数据? -
全夏治君: 哥哥我想出的办法是这样的:因为兄弟文件格式是一行一行的, 且每行开头是一个关键字,然后后面是相应数据, 所以哥哥是这么想的, 比如要读"AB2345"这个关键字对应行的内容, 那首先用变量或者宏定义定义下来, 然后从文件开头...

谷城县18854844154: 在c语言中,如何读取一个txt文件中的信息 -
全夏治君: 一般来说在C语言中读取txt文件的信息有两种方法,一种是使用C语言标准文件I/O中的fopen()、fread()等等函数,一种是调用操作系统中的API函数,比如Windows上的ReadFile()、OpenFile()等等,现在操作系统一般都具备内存文件映射功能...

谷城县18854844154: C语言怎样将数字从文件里逐个读取出来 -
全夏治君: 可以通过fscanf,从文件中依次读取数据.当fscanf返回EOF时,表示读到文件结尾,这时停止读取即可.以文件中存储的为空格分隔的整型字符为例,可以写作:while(fscanf(fp,"%d",&n) != EOF)//从打开的文件指针fp指向的文件读数据,每次读一个整型,直至文件结尾. printf("%d ", n);

谷城县18854844154: C语言如何读取文件中指定的某一段 -
全夏治君: 使用fread函数读取指定长度的字符串,即使包含\n也会被读取,可以首先使用fseek定位到文件结尾,然后ftell函数返回的值就是文件的大小,这样就可以用循环多次读取文件,直到读取所有内容 FILE *file = NULL; char szFile[1025] = {0}; int ...

谷城县18854844154: 如何:读取文本文件中的内容 -
全夏治君: 在C语言中,文件操作都是由库函数来完bai成的. 要读取一个txt文件,首先要使用文件打开函数fopen(). fopen函数用来打开一个文件,其调用的一般形式为du: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说...

谷城县18854844154: C语言如何读取文件中的内容?一直读到结尾,每次读5个字(包括标点符号) -
全夏治君: 先要打开文件,使用fopen,fread读取文件内容,判断文件尾的方法我忘掉了,躯体你查查,读到内存buffer中,再显示出来,释放内存空间,关闭文件.基本上就这些步骤.

谷城县18854844154: C语言如何读取文本文件中的一行数据啊? -
全夏治君: char *fgets(char *buf, int bufsize, FILE *stream);参数 *buf: 字符型指针,指向用来存储所得数据的地址.bufsize: 整型数据,指明存储数据的大小.*stream: 文件结构体指针,将要读取的文件流.返回值 1. 成功,则返回第一个参数buf;2. 在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;3. 如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变.

谷城县18854844154: c语言怎么从文件中读取数据,在线等,急求. -
全夏治君: 这里提供一种做法,空格也会被存进字符串里.如果空格是不需要的,可用DeleteSpace(node[i].a)来删除空格.或者在选取字符时跳过空格即可.#include #define N 100 char a[N][N], b[N][N], c[N][N]; void DeleteSpace(char *p){ int i, j; for(i = 0; p[i] ...

谷城县18854844154: c语言怎么实现从文件中读取指定 -
全夏治君: //假设一行的文本内容不超过1000字符,如果估计超过,请自行修改函数中的1000 //如果打不开文件,返回NULL //如果文件不足n行,返回NULL //如果正获得正常数据,返回str的地址 char *getfileline(char *p,int n, char *str){FILE *fp;int i;if ((fp=fopen(p,"r"))==NULL){printf("打开文件错误\n");return NULL;}for(i=1;i

谷城县18854844154: C语言中用什么才能读出一个文件中的所有数据并把它存到一个数组中,且知道该数组的长 -
全夏治君: 使用文件操作函数fopen,fscanf即可. 1.fopen的函数原型:FILE * fopen(const char * path,const char * mode);fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式: r 以只读方式打开文件,该文件必须存在. r+ 以可...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网