当前位置:首页 » 编程语言 » c语言逐行读取

c语言逐行读取

发布时间: 2022-12-07 17:28:50

c语言 如何一行行读文件

C语言中,使用fgets函数遍可以一行行读取文件。
1、fgets函数:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:从文件结构体指针stream中读取数据,每次读取一行。
说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以\0字符结束,下一次fgets调用会继续读取该行剩余的字符;
头文件:stdio.h;
返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:
#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打开输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
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);//关闭输出文件,相当于保存
return 0;
}

㈡ C语言怎么实现逐行读取指定字符串丫

你这东西是linux环境下的东西吧。。用shell脚本,扩展了正则表达式的egrep就行了
egrep 'RX|TX' input.txt > output.txt
如果是C语言的话,用readline逐行逐行读取,找到开头,读入RX当行,再读入下一行。之后同样的继续readline扫描后面字符串就行了。。

㈢ 关于C语言中文本文件的逐行读取的实现

#include <stdio.h>

#include <stdlib.h>
#define LINE 1024
char *ReadData(FILE *fp, char *buf)
{
return fgets(buf, LINE, fp);//读取一行到buf
}
void someprocess(char *buf)
{
printf("%s", buf);//这里的操作你自己定义
}
int main()
{
FILE *fp;
char *buf, filename[20], *p;
printf("input file name:");
gets(filename);
if ((fp=fopen(filename, "r"))==NULL) {
printf("open file error!!\n");
return;
}
buf=(char*)malloc(LINE*sizeof(char));
while(1) {
p=ReadData(fp, buf);//每次调用文件指针fp会自动后移一行
if(!p)//文件读取结束则跳出循环
break;
someprocess(buf);
}
return 0;
}
不懂请追问,满意请采纳,谢谢!

㈣ C语言读取文件内容,按行读

1通过fopen函数打开文本,例如file
*fp=fopen("in.txt","r");//返回一个file类型的句柄
2然后就可以通过fcanf()函数对txt文本进行读取
3操作完文本之后用fclose()函数
关闭已经打开的文件。
#include
int main()
{
int data;
file *fp=fopen("in.txt","r");
if(!fp)
{
printf("can't open file\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp,"%d",&data);
printf("%4d",data);
}
printf("\n");
fclose(fp);
return 0;
}

㈤ C语言读取文件内容,按行读

C语言逐行读取文件内容 ,参考代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineMAX_LINE1024
intmain()
{
charbuf[MAX_LINE];/*缓冲区*/
FILE*fp;/*文件指针*/
intlen;/*行字符个数*/
if((fp=fopen("test.txt","r"))==NULL)
{
perror("failtoread");
exit(1);
}
while(fgets(buf,MAX_LINE,fp)!=NULL)
{
len=strlen(buf);
buf[len-1]='';/*去掉换行符*/
printf("%s%d ",buf,len-1);
}
return0;
}

㈥ 关于C语言中文本文件的逐行读取的实现

若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

C语言中文本文件的逐行读取的实现的代码如下:

#include<stdio.h>

main()

{

FILE * fp;

fp=fopen(“noexist”,”a+”);

if(fp= =NULL) return;

fclose(fp);

}

(6)c语言逐行读取扩展阅读

1、如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值。

2、如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值。

3、可以通过把IFS设置为换行符来达到逐行读取的功能。

㈦ 关于C语言中文本文件的逐行读取的实现

#include
<stdio.h>
int
ReadData(void)
{
unsigned
int
rc,
i,
get;
/*get为读取一个字节*/
FILE
*fp;
fp
=
fopen("helloworld.txt",
"r+");
if
(fp
==
NULL)
{
return
-1;
/*打开文件失败返回-1*/
}
rc=0;
i=0;
while
((get
=
fgetc(fp))
!=
EOF)
{
if((char)get
==
'\n')
/*记录换行符*/
{
rc
=
ftell(fp);
i++;
}
rc++;
}
return
i;
}
int
main()
{
int
row;
row
=
ReadData();
printf("Row
=
%d\n",
row);
/*打印文件行数*/
return
0;
}

㈧ c语言怎样按行读取

区分读取的源,有如下两种情况:

1 从标准输入读取,即stdin。
可以使用gets函数:
char * gets(char *str);
该函数会从标准输入中读取一行数据,直到读到\n,并将\n替换为字符串结束符\0,读取到的数据以字符串形式存于str中。
需要注意的是,使用gets函数时,需要确保str指向空间大小,必须超过任意一行的长度,否则会出现越界操作。有些编译器会报gets是不安全的,就是这个原因。

2 从文件读取。
对于一个被打开的文件,如果其是可读的,那么可以通过fgets函数实现按行读取。
char *fgets(char *buf, int bufsize, FILE *fp);
功能与gets类似,只是源不同。fgets从fp中读一行数据存到buf中,同时会判断bufsize,如果一行数据的长度超过了bufsize,那么只读入bufsize长度的数据,确保不会溢出。否则读取整行。
由于在C语言中,标准输入stdin也是以文件指针形式存在的,所以gets可以用
fgets(str, bufsize, stdin);
替代,这样代码量稍多一些,但可以更安全。

热点内容
php获取调用的方法 发布:2025-01-20 04:25:45 浏览:458
SMPT邮箱服务器地址 发布:2025-01-20 04:04:16 浏览:662
抖影工厂为什么安卓手机用不了 发布:2025-01-20 04:00:05 浏览:386
我的世界网易版怎么进朋友服务器 发布:2025-01-20 03:50:10 浏览:684
phpsession跳转页面跳转 发布:2025-01-20 03:47:20 浏览:540
深圳解压工厂 发布:2025-01-20 03:41:44 浏览:690
linux字体查看 发布:2025-01-20 03:41:30 浏览:742
pythonextendor 发布:2025-01-20 03:40:11 浏览:199
为什么安卓手机储存越来越少 发布:2025-01-20 03:40:07 浏览:925
算法和人性 发布:2025-01-20 03:28:31 浏览:473