5个回答
展开全部
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\n",i,a);
printf("第%d列数据:%s\n",j,b);
fclose(fp);
}
展开全部
用纯C语言不能实现这样的功能,除非一次读两行,或者再添加一个或者两个变量,在循环读取数据的过程中将上次读到的内容保存下来.
另外,WINDOWS中可以使用FILEMAP(文件内存映射)的办法来实现随意访问.
另外,WINDOWS中可以使用FILEMAP(文件内存映射)的办法来实现随意访问.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
绝对不可能实现的
要麼你就全部读出来,或者映射到内存
或者你只有记住上一行的起始位置,用fseek将文件指针移过去
要麼你就全部读出来,或者映射到内存
或者你只有记住上一行的起始位置,用fseek将文件指针移过去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<string>
using namespace std;
.....
string preline(""), curline("");
ifstream infile("file name");
while(getline(infile, curline))
{
.....
// 得前一行
if(preline.length() > 0) {
..... // preline 为前一行数据
}
.....
preline = curline;
}
infile.close();
using namespace std;
.....
string preline(""), curline("");
ifstream infile("file name");
while(getline(infile, curline))
{
.....
// 得前一行
if(preline.length() > 0) {
..... // preline 为前一行数据
}
.....
preline = curline;
}
infile.close();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询