如何用c语言读取文本文件中的多行数据
有很多种方式可以一次性读取多行数据,具体如何使用,取决于文件内容格式。
一、以fscanf读取。
fscanf读取时,默认会到空白字符截止。所以如果文件中不存在其它空白字符,那么可以以fscanf实现一次性读取多行的效果,比如文件中存储为
12.3name那么要一次性读取这三行数据,可以使用:
int a;float b;char c[20];fscanf(fp, "%d%f%s",&a,&b,c);其中,fp为打开该文件的文件指针, 分别将三行数据读取到三个变量a b c中。
二、以fread读取。
fread可以一次性读取若干个数据块,所以如果要读取的文件内容总长度已知,那么可以通过fread一次性读取多行。如
this isformy testonly.以上数据分4行,包括换行符在内共计25字节。
此时可以使用如下代码一次性读取四行:
char buf[100];fread(buf, 25, 1, fp);其中fp为打开该文件的文件指针。
#include #define MAX_LINE 1024//每行最大字节数int main() { int n=0;FILE *fp; char strLine[MAX_LINE];//读取缓冲区if((fp = fopen("result.txt","r")) == NULL)//判断文件是否存在及可读{ printf("Open Falied!"); return -1; } while (!feof(fp))//循环读取每一行,直到文件尾{ fgets(strLine, MAX_LINE,fp); //将fp所指向的文件一行内容读到strLine缓冲区printf("%s", strLine); //输出所读到的内容//DO SOMETHING ELSE} fclose(fp);//关闭文件printf("
");return 0; }
用一维数组存的,如果需要用二维数组则用制表符‘’拆分就好了。
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。
2、例程:
#include<stdio.h>
#include<string.h>
void 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);
}
for(string str; getline(in,str);)
out<<str<<endl;
这个就可以了,当找不到可以读入的数据时,第二个条件会自动返回假,并结束循环。
肯定是结构体啊,
你定义一个这样的结构体有5个整形数据的结构体,这样你写入文件的时候就这样写,读的时候也一次可以读5个。
用循环存入数组比较简单。
查下api有函数可以一行一行的读写的。
比如getline 先保存到一个字符串数组中。
然后再处理
用C语言编写“读取一个给定的文本文件,并将文件的内容显示在屏幕上...
\\n"); \/\/如果fp指针指向为空,即文件为空,则输出can not open else{ \/\/读取字符:fscanf(fp,"%c",&ch),ch=fgetc(fp); fscanf(fp,"%c",&ch); \/\/读取字符 while(!feof(fp)){ \/\/feof()这个函数是用来判断指针是否已经到达文件尾部 putchar(ch); \/\/输出 fscanf...
C语言怎样将文本文件中的内容读取打印
可以参考下面的代码:include<stdio.h> define F_PATH "d:\\\\myfile\\\\file.dat"char c;int main(){ FILE*fp=NULL;\/\/需要注意 fp=fopen(F_PATH,"r");if(NULL==fp) return -1;\/\/要返回错误代码 while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); \/\/从文本中读入并在控制台打印...
C语言如何读取txt文本里面的内容?
C语言可以使用fopen()函数读取txt文本里。示例:include <stdio.h> FILE *stream, *stream2;void main( void ){ int numclosed;\/* Open for read (will fail if file "data" does not exist) *\/ if( (stream = fopen( "data", "r" )) == NULL )printf( "The file 'data' was...
c语言读取文本文件
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。2、例程:include...
如何用C语言读写文件
c语言读写文件程序:include "stdio.h"include <stdlib.h>main(){ FILE *fp1;\/\/定义文件流指针,用于打开读取的文件 FILE *fp2;\/\/定义文件流指针,用于打开写操作的文件 char text[1024];\/\/定义一个字符串数组,用于存储读取的字符 fp1 = fopen("d:\\\\a.txt","r");\/\/只读方式打开文件a....
c语言 怎么读文件中的汉字
本例程序的功能是从文件中逐个读取字符,在屏幕上显示。程序定义了文件指针fp,以读文本文件方式打开文件“d:\\\\jrzh\\\\example\\\\ex1_1.c”,并使fp指向该文件。如打开文件出错,给出提示并退出程序。程序第10行先读出一个字符,然后进入循环,只要读出的字符不是文件结束标志(每个文件末有一结束标志...
C语言实现对txt文档的操作
用C语言编写一个程序,读取文本文档1.txt 1.txt 中有几行数据 235 456 135 数据读出后,还要把数据按第一个字符大小排序显示在屏幕上 排序后结果应该是 135 235 456 include<stdio.h> include<stdlib.h> define N 100 include<string.h> int main(){ FILE *fp;int i,j=0,k;char s[N][...
如何用c语言调用txt文件中的内容
在C语言中,调用文本文件有两种情况: 1 在代码中直接使用该文件。 这种情况,本质上是把文本文件当做头文件来使用,而文本文件中的数据当做代码的一部分。 比如 #include "a.txt"这时,需要保证a.txt中是合法的C语言格式。 2 在运行中调用文本...
在c语言中怎样打开一个文本文档
这些都是c语言打开文件函数fopen的一个参数打开文件方式的值:定义函数 file fopen(const char path,const char mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。mode有下列几种形态字符串:r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须...
如何用c语言读取文本文件中的多行数据
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; \/\/第三行,第四列 FILE *fp = fopen("data.tx...
宜转泰特: 用循环存入数组比较简单. 查下api有函数可以一行一行的读写的. 比如getline 先保存到一个字符串数组中. 然后再处理
兴宾区15128664979: 用C语言读出文件行数 - ?
宜转泰特: #include <stdio.h> int hangshu(char file[])//输入工程目录下的文件名,或者其他目录下绝对路径名例如:c:\\1.txt; {char c;int h=0;FILE *fp;fp=fopen(file,"r");if(fp==NULL)return -1;//表示文件打开错误while((c=fgetc(fp))!=EOF){if(c=='\n')h...
兴宾区15128664979: 如何用c语言从txt文件中读出多行数据,并且算出每行数据之和,最后输出一个txt文件,里面是各行的和. - ?
宜转泰特: 先学好c语言在提需求, 这个题目里涉及文件读写的操作.掌握了接口,这个题目就很好搞定了1)打开文件 FILE *r = fopen("文件", rb); 2) 打开创建一个txt文件 FILE * w = fopen("txt", wb);3) 循环的以行为单位读取,直到文件结束fgetline(r, buf, sizeof(buf), '\n'); 解析行字符串buf, 累加数字求和 这里涉及到字符串的一些操作,及字符转数字问题 求的和写入txt文件 fwrite() feof() // 检查是否读到文件末尾了4) 关闭文件 fclose(r); fclose(w); 思路就只这些,自己去摸索写吧
兴宾区15128664979: 怎么用C语言检查一个txt文件有几行? - ?
宜转泰特: #include #define MAX_LINE 1024 int main() { char buf[MAX_LINE]; /*缓冲区*/ FILE *fp; /*文件指针*/ int len; /*行字符个数*/ int numofline; numofline=0; if((fp = fopen("test.txt","r")) == NULL) { perror("fail to read"); exit (1) ; ...展开#...
兴宾区15128664979: c语言——读取多行文本问题?
宜转泰特: 很简单,因为您的文本的最后一行之后还有一个新航,即最后一行内容并不是"ab",而是空,即'"ab"的下一行,需要改正代码如下即可 while(!feof(p)) //检测指针是否到了文件尾 { memset(ch, 0, 256); fgets(ch, sizeof(ch), p); lstrcat(ed, ch); }
兴宾区15128664979: C语言怎么从给定的文件中读取多行字符(每行只有一个字符)然后比较 - ?
宜转泰特: 对二维数组的每一行进行冒泡排序就行,代码如下:#include#include#defineMAX100voidmain(){ inti,j,k,n,len; chart; chars[MAX][MAX]; printf("请输入行数:"); scanf("%d",&n); printf("请输入数据:\n"); for(i=0;i=j;k--) if(s[i][k-1]>s[i][k]) { t=s[i][k-1]; s[i][k-1]=s[i][k]; s[i][k]=t; } } printf("排序后:\n"); for(i=0;i
兴宾区15128664979: c语言怎么实现从文件中读取指定行内容 - ?
宜转泰特: //假设一行的文本内容不超过行修改函数中的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<n;i++)
兴宾区15128664979: C语言怎样读取文本的每一行 - ?
宜转泰特: 可以使用fgets函数来实现.1 函数名: fgets 2 声明形式: char *fgets(char *buf, int bufsize, FILE *stream); 3 头文件: stdio.h4 功能及参数说明: 从stream中读取一行数据存到buf中.如果数据长度小于bufsize,那么读入整行数据,并将换行符...
兴宾区15128664979: c语言问题(想要读取文件的行数) - ?
宜转泰特: #include void main(){ FILE *fp; char name[100]; int i,c; i=1; // 一开始就有一行 printf("enter filename:"); gets(name); fp=fopen( name ,...
兴宾区15128664979: 请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来 - ?
宜转泰特: fopen以"r"方式打开文件.然后循环以fgets读取. 这个函数是一次读一行的.然后输出就好.读到EOF fgets会返回NULL 退出并关闭文件就好.