A. c语言读取指定行数据
#include<stdio.h>
#defineMAXC1024
intReadSpeacialLine(inti)
{
charfilename[]="test.c";//文件名
FILE*fp;
intret=0,L;
intWhichLine=i;//指定要读取哪一行
intCurrentIndex=0;//当前读取的行
charStrLine[MAXC];//每行最大读取的字符数,可据实际情况更改
if((fp=fopen(filename,"r"))==NULL)//打开文件
{
printf("openfileerror! ");
returnret;
}
while(1){
if(NULL==fgets(StrLine,MAXC,fp))break;
L=strlen(StrLine);
if(' '==StrLine[L-1]){
memset(ln+L-1,0,MAXC-L+1);
CurrentIndex++;
if(WhichLine==CurrentIndex)
{
fgets(StrLine,MAXC,fp);//读取一行
printf("%s",StrLine);//输出
ret=1;
returnret;
}
}
else{//行内容太多StrLine会读不到行结尾的情况
CurrentIndex++;
if(WhichLine==CurrentIndex)
{
fgets(StrLine,MAXC,fp);//读取一行
printf("%s",StrLine);//输出
ret=1;
returnret;
}
while(1){
if(NULL==fgets(StrLine,MAXC,fp))gotoEND;
L=strlen(ln);
if(' '==ln[L-1])break;
}
}
}
end:
fclose(fp);//关闭文件
returnret;
}
使用fgets函数,fgets是每次读取一行。
使用memset来清除StrLine,防止上一次StrLine中的内容未清除。
满意请采纳,不懂请追问。
B. C语言 怎么读取文件的每一行的内容
(已修改)下面那段是我的checking.
还是不能吗? 我做的是C,要存成[.c]
#include<stdio.h>
#define item 1000
main(){
FILE *fpt;
char num[item][10], temp[1000];
int i=0, j;
fpt = fopen("t1.txt","r");
while(fscanf(fpt, "%[^' '] ", num[i]) != EOF){
fscanf(fpt, "%[^\n]\n", temp);
i++;
}
for(j=0; j<i; j++)
printf("[%d] %s\n", j, num[j]);
fclose(fpt);
}
C. C语言怎样读取文本的每一行
可以使用fgets函数来实现。
1 函数名:
fgets
2 声明形式:
char *fgets(char *buf, int bufsize, FILE *stream);
3 头文件:
stdio.h
4 功能及参数说明:
从stream中读取一行数据存到buf中。如果数据长度小于bufsize,那么读入整行数据,并将换行符转换为字符串结束符\0。 如果数据长度超过bufsize,那么只读入bufsize大小的数据,并在结尾添加\0。
5 返回值:
成功,则返回第一个参数buf;
在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;
如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。
D. C语言怎样一行一行读文件
文件有三行有两种情况。一种是显示是在屏幕上显示三行,其实还是在一行,另一种是以换行符分割行。对第一种情况,遍历统计字符个数,计算出第三行起始地址,对第二种遍历以第二个换行符下一个地址作为第三行起始地址
E. C语言 如何一行行读文件
#include
#include
void main()
{
char b[25];
//打开文件
FILE *fp;
fp = fopen("D:\\a.txt","r");
//获取文件内容,每次读一个字符,包括空格
for(int i=0;i<25;i++)
//fscanf(fp,"%c",&b[i]);
fgets(&b[i],2,fp);
fclose(fp);
//显示读取到的内容
for(int i=0;i<25;i++)
printf("%c",b[i]);
}
F. 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);
替代,这样代码量稍多一些,但可以更安全。
G. c语言如何从文件中读入一行数据
关键技巧:
每行数据个数随机,可用
c
=
fgetc(fin);
ungetc(c,fin);
检查是否读到
换行符或文件结束符。
例如:
a.txt
1
2
3
45
56
6
7
8
9
10
至于记录每行数据个数,存放到数组,等等,可以自己补充完善。
程序:
#include
<stdio.h>
int
main(
)
{
file
*fin;
int
a,c;
fin=fopen("a.txt","rw");
while(1){
c
=
fgetc(fin);
if
(c==eof)
break;
if
(c=='\n')
{printf("\n==========\n");
continue;};
ungetc(c,fin);
fscanf(fin,"%d",&a);
printf("%d
",a);
}
fclose(fin);
return
0;
}
H. C语言如何读取文本文件中的一行数据啊
用fstream(文件流),fstream
file
然后
file.getline(char*,int,char
a=‘\n’)第一个是一个存储字符串的指针,第二个是要读取的最大长度,第三个是行结束符,默认是回车,函数说明就是当读入的字符超过最大长度int或者遇到行结束符(‘\n’)时就停止,而且这个很好用的(对于读入和写入),你看看文档就会了,哈哈,给分啊。!!~~