c语言如何从文件取内容|如何用c语言从txt文件中读取数据

c语言如何从文件取内容|如何用c语言从txt文件中读取数据的第1张示图

㈠ C语言获取文件里面并输出内容

从文件内容读入和输出可以使用fscanf、fprintf。如:fscanf(fp,"%d",&num);//从文件fp读入一个整数到num变量;fprintf(fp,"%d",num);//将num变量的值输出到文件fp;屏幕也可以看作一个文件流,输入是stdin,输出是stdout,如输出到屏幕,就是:fprintf(stdout,"%d",num);

㈡ c语言从文件读取数据

四个整型 一个浮点型, 所以 用数组的话 只能是用浮点型数组, 即float a[5];

或者用五个变量, 可以是四个整型,一个浮点型. int a,b,d,e; float c;

打开文件部分相同.

FILE*fp=fopen("input1.txt","r");

读取数据, 数组方式:

inti;floata[5];fscanf(fp,"%f,",&a[0]);for(i=1;i<5;i++)fscanf(fp,"%f",&a[i]);

变量方式:

inta,b,d,e;floatc;fscanf(fp,"%d,%d%f%d%d",&a,&b,&c,&d,&e);

㈢ C语言编程怎样从文件中提取信息

如果你对编程语言没有要求的话,我建议这类问题用perl或者其他脚本语言处理比较简单明了。找出数据其实完全可以用是fscanf,再不行,你直接一个字符一个字符,遇到第几个空格,什么的数据不就区分开了么。指针好像是一种数据类型,没有调用这一说,你能说清楚一些你想要表达的意思么。

㈣ c语言怎么提取文本文件中我想要的一些信息

使用文件操作函数fscanf即可提取文本当中特定的信息。例如要提取一个整数,可以用fscanf(fp,"%d",&n);要提取一个字符串可以用fscanf(fp,"%s",s),其中fp为文件指针。

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。2、例程:

#include<stdio.h>inta;charb,c[100];intmain(){FILE*fp1=fopen("input.txt","r");//打开输入文件FILE*fp2=fopen("output.txt","w");//打开输出文件if(fp1==NULL||fp2==NULL){//若打开文件失败则退出puts("不能打开文件!");return0;}fscanf(fp1,"%d",&a);//从输入文件读取一个整数b=fgetc(fp1);//从输入文件读取一个字符fgets(c,100,fp1);//从输入文件读取一行字符串printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数fputs(c,fp2);//向输出文件写入一行字符串fputc(b,fp2);//向输出文件写入一个字符fprintf(fp2,"%d",a);//向输出文件写入一个整数fclose(fp1);//关闭输入文件fclose(fp2);//关闭输出文件,相当于保存return0;}

㈤ 如何用c语言从txt文件中读取数据

用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作。一、打开文件:FILE*fopen(constchar*filename,constchar*mode);因为txt文件为文本文件,所以打开时选择的mode应为"r"或者"rt"。二、读取文件:读取文件应根据文件内容的格式,以及程序要求,选择读取文件的函数。可以使用一种,也可以几种混用。常用的文件读取函数如下:1、fgetc,从文件中读取一个字节并返回。适用于逐个字节读取。2、fgets,从文件中读取一行。适用于整行读取。3、fscanf,格式化读取文件,在已经清楚文件存储格式下,可以直接用fscanf把文件数据读取到对应类型的变量中。4、fread,整块读取文件,对于txt文件比较少用。三、关闭文件:读取结束后,应调用fclose函数关闭文件。

㈥ C语言文件的文本怎么读取

根据你给的文件保存的数据的格式,我猜测每一行是一个学生的信息,格式如下:

序号 姓名 成绩1 成绩2 成绩3 …

知道了题意和题目要求,那么一切将会变得简单起来,请看代码。

#include<stdio.h>#defineREAD_FILE"data.txt"/*要读取的文件的名字*/#defineWRITE_FILE"T_data.txt"/*要写入的文件的名字*/#defineSTU_NUM10/*最大学生人数*/#defineMAX_LEN50/*一行的最大字符数*//**获取总分函数*/intget_sum(charconst*msg){intsum=0;inttmp;/**遍历一行字符*/while(*msg!=''){/**以空格为一项成绩的分隔标志*/tmp=0;while(*msg!=''&&*msg!=''){/**char类型数字转int类型数字*/tmp=(tmp*10)+((*msg)-'0');msg++;}/**求总和*/sum+=tmp;if(*msg==''){break;}msg++;}returnsum;}intmain(void){FILE*rfp,*wfp;/*声明读取/写入文件指针*/charstudent[STU_NUM][MAX_LEN];/*存放读取到的数据缓存数组*/charch;intsum[STU_NUM];/*成绩总和*/inti=0;intj=0;intk=0;rfp=fopen(READ_FILE,"r");/*打开数据文件*/if(rfp==NULL){perror(READ_FILE);exit(1);}for(i=0;i<STU_NUM;i++){sum[i]=0;}/**逐个字符读取文件的内容,*直至遇到文件结束符为止。*/i=0;while((ch=fgetc(rfp))!=EOF){/**遇到换行符表示已经读取完一个学生的资料;*否则继续将数据写入缓存数组中。*/if(ch==''){student[i][j]='';j=0;i+=1;}else{student[i][j++]=ch;}}student[i][j]='';wfp=fopen(WRITE_FILE,"w");/**开始分析数据*根据文件存放数据的格式,从下标为2的位置开始分析数据。*当遇到空格时证明后面的数据是成绩,每一科成绩分数均以空格分开。*printf是显示出来。*fprintf是写入另一个文件。*/for(j=0;j<=i;j++){k=2;printf("%c%c",student[j][0],student[j][1]);fprintf(wfp,"%c%c",student[j][0],student[j][1]);while(student[j][k]!=''){printf("%c",student[j][k]);fprintf(wfp,"%c",student[j][k]);k++;}printf("'ssumofscoresumis");fprintf(wfp,"'ssumofscoresumis");sum[j]=get_sum(&student[j][k]);printf("%d",sum[j]);fprintf(wfp,"%d",sum[j]);}/**记得关闭文件哦。*/fclose(rfp);fclose(wfp);return0;}

以下是运行结果:

这个程序仅仅是针对你的题目要求来的,文件存放的数据格式不能更改,否则会出错。每一行必须以回车键结束,最后一行的最后一个字符之后什么也不能有。我尽量以你看得懂的方法来写,关键部分都带有注释,有问题不要追问了,自己多思考思考,实在解决不来还是很欢迎可以追问的哦,哈哈哈!!!

㈦ c语言 怎么从文件中读取指定内容

哥哥我想出的办法是这样的:因为兄弟文件格式是一行一行的, 且每行开头是一个关键字,然后后面是相应数据, 所以哥哥是这么想的, 比如要读"AB2345"这个关键字对应行的内容, 那首先用变量或者宏定义定义下来, 然后从文件开头开始, 一个字符一个字符的扫描, 对每一行的开始的6个字符组成的关键字读出来跟"AB2345"这个关键字比较, 判断是否是想要读取的, 如果是, 那么通过ftell, fseek 两个函数分别得出当前指针的位置和适当移动指针的位置, 最后读取相应内容输出来!详细代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUF_SIZE 1024#define KEY "AB2345"#define KEY_LEN 7int main(){ int ch = 0; int first = 1;//开始时的标志,因为是一个字符一个字符的扫描 int flag = 0;//文件开头是不是所要读内容的标志 int count = 0;//遇到'\n'的个数 int pre_pos = 0, cur_pos = 0;//前一次和当前文件指针的位置 char buf[BUF_SIZE] = {0}; FILE *fp = NULL; fp = fopen("test.txt", "r"); if (fp == NULL) { printf("Cann't open the file!\n"); exit(1); } else { while ((ch = fgetc(fp)) != EOF) { if (first) { //若要读取的内容在文件开头就有时 //移动指针到文件开头 fseek(fp, -1L, SEEK_CUR); fgets(buf, KEY_LEN, fp); if (strcmp(buf, KEY) == 0) { first = 0; flag = 1; continue; } else { first = 0; } } if (ch == '\n') { count++;//遇到'\n'的个数 pre_pos = cur_pos;//上次遇到'\n'时文件指针的位置 cur_pos = ftell(fp);//当前遇到'\n'时文件指针的位置 //文件开头内容符合要求的就适当移动指针位置 //然后读取输出来 if (count == 1 && flag == 1) { fseek(fp, 0L, SEEK_SET); memset(buf, 0, sizeof(buf)); fgets(buf, cur_pos – 1, fp); printf("%s\n", buf); } //之后内容符合要求的就适当移动指针位置 //然后读取输出来 else { memset(buf, 0, sizeof(buf)); fgets(buf, KEY_LEN, fp); if (strcmp(buf, KEY) == 0) { fseek(fp, (-1) * (KEY_LEN – 1), SEEK_CUR); memset(buf, 0, sizeof(buf)); fgets(buf, cur_pos-1-pre_pos, fp); printf("%s\n", buf); } } } } } fclose(fp); return 0;}

㈧ C语言读取文件数据

先用getline或fgets读取数据到一个字符串中,这个串定义的长一点,保证够用就行。

举例:回

char str[1024]。

fgets( str , sizeof(str), fp ),//fp打开的答文件指针。

然后调用for循环去读取串的的数据,假设你的分隔符是空格,遍历str,遇到空格就得到一个数据,然后继续遍历,直到str尾。

再去fgets数据,再遍历,即可得到所有的数据。

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。

C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

㈨ c语言怎么读取文件内容并且计算

主要通过fscanf,fprintf格式化输入输出函数实现,主要代码如下,#include <stdio.h>int main(int argc, char *argv[]){FILE *pf=NULL;char name[20];//存储用户名float salary=0;//存储工资pf=fopen("test.txt", "r+" );//test.txt文件中内容为kobe 90000.80if(!pf){printf("打开文件失败,程序退出!");exit(1); } fscanf(pf,"%s %f",name,&salary);salary*=0.9;//处理工资,例如扣除五险、扣税等。 fprintf(pf,"\n%f",salary);//写入test.txt文件中 printf("%s %f\n",name,salary);//输出kobe 81000.718750if(pf)//关闭文件 {fclose( pf);pf=NULL;} return 0;}int fscanf( FILE *stream, const char *format, … );函数fscanf()以scanf()的执行方式从给出的文件流中读取数据,fscanf()的返回值是事实上已赋值的变量的数,如果未进行任何分配时返回EOF。int fprintf( FILE *stream, const char *format, … );fprintf()函数根据指定的format(格式)发送参数到由stream指定的文件。fprintf()只能和printf()一样工作,fprintf()的返回值是输出的字符数,发生错误时返回一个负值。

㈩ 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 not opened" );

else

printf( "The file 'data' was opened" );

/* Open for write */

if( (stream2 = fopen( "data2", "w+" )) == NULL )

printf( "The file 'data2' was not opened" );

else

printf( "The file 'data2' was opened" );

/* Close stream */

if(fclose( stream2 ))

printf( "The file 'data2' was not closed" );

/* All other files are closed: */

numclosed = _fcloseall( );

printf( "Number of files closed by _fcloseall: %u", numclosed );

}

(10)c语言如何从文件取内容扩展阅读

使用fgetc函数

#include <stdio.h>

#include <stdlib.h>

void main( void )

{

FILE *stream;

char buffer[81];

int i, ch;

/* Open file to read line from: */

if( (stream = fopen( "fgetc.c", "r" )) == NULL )

exit( 0 );

/* Read in first 80 characters and place them in "buffer": */

ch = fgetc( stream );

for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )

{

buffer[i] = (char)ch;

ch = fgetc( stream );

}

/* Add null to end string */

buffer[i] = '';

printf( "%s", buffer );

fclose( stream );

}

未经允许不得转载:山九号 » c语言如何从文件取内容|如何用c语言从txt文件中读取数据

赞 (0)