C语言文件 *** 作,要读取一个txt文件内容,应该怎么做?

C语言文件 *** 作,要读取一个txt文件内容,应该怎么做?,第1张

//data.txt文件内容汪谨如下\x0d\x0a\x0d\x0a1个猪\x0d\x0a2个猪旁陵丛\x0d\x0a3个猪\x0d\x0a4个猪\x0d\x0a5个猪\x0d\x0a6个猪\x0d\x0a7个猪\x0d\x0a8个猪\x0d\x0a\x0d\x0a//运行结果一\x0d\x0athe 8 line :8 个 猪\x0d\x0a\x0d\x0aPress any key to continue \x0d\x0a//运行结果运樱二\x0d\x0aout of range!\x0d\x0aPress any key to continue \x0d\x0a\x0d\x0a//代码如下\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0amain(void)\x0d\x0a{\x0d\x0aint lid,cnt=0,flag=0\x0d\x0achar buf[100]="\0"\x0d\x0aFILE *fp\x0d\x0a\x0d\x0asrand((unsigned)time(NULL))\x0d\x0afp=fopen("data.txt","r")\x0d\x0alid= rand()%10+1\x0d\x0awhile (fgets(buf,99,fp)!=NULL)\x0d\x0a{\x0d\x0aif(cnt==lid)\x0d\x0a{\x0d\x0aprintf("the %d line :%s\n",lid+1,buf)\x0d\x0aflag=1\x0d\x0abreak\x0d\x0a}\x0d\x0acnt++\x0d\x0a}\x0d\x0aif (flag==0)\x0d\x0a{\x0d\x0aprintf("out of range!\n")\x0d\x0a}\x0d\x0a}

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\n" )

else

printf( "The file 'data' was opened\n" )

/* Open for write */

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

printf( "The file 'data2' was not opened\n" )

else

printf( "The file 'data2' was opened\n" )

/* Close stream */

if(fclose( stream2 ))

printf( "The file 'data2'兄告 was not closed\n" )

/* All other files are closed: */

numclosed = _fcloseall( )

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

}

扩展资料

使用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] = '\0'

printf( "%s\n", buffer )

fclose( stream )

}

在C语言中,文件 *** 作都是由库函数来完成的。

要读取一个txt文件,首先要使用文件打开函数fopen()。

fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和 *** 作要正携求。“文件名”是字符串常量或字符串数组。

其次,使用文件读写函数读取文件。

在C语言中提供了多种文件读写的函数:

·字符读写函数 :fgetc和fputc

·字符串读写函数:fgets和fputs

·数据块读写函数:freed和fwrite

·格式化读写函数:fscanf和fprinf

最后,在文件读取结束要使用文件关闭函数fclose()关闭文件。

下面以格式化读写函数fscanf和fprintf为例,实现对文件A.txt(各项信息以空格分割)的读取,并将它的信息以新的格式(用制表符分割各项信息)写入B.txt,实现对A.txt的处理。

C语言源程序如下所示:

#include <stdio.h>

#include <stdlib.h>

#include <assert.h>

typedef struct student{

char name[32]

int no

char sex[16]

float score

} stu

int main(int argc, char* argv[])

{

//打开文件

FILE * r=fopen("A.txt","r")

assert(r!=NULL)

FILE * w=fopen("B.txt","w")

assert(w!=NULL)

//读写文件

stu a[128]

int i=0

while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)

{

printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score)//输出到显者清蠢示器屏幕

fprintf(w,"%s\t%d\首陪t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score)//输出到文件B.txt

i++

}

//关闭文件

fclose(r)

fclose(w)

system("pause")

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12292917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存