现在有一个txt文件,有有多列数据···我只想读取其中两列····用C语言如何实现??求高手解答··· 50
2个回答
展开全部
上面回答的fgets 是有点问题的:例如:
第一行: xx yy zz 用fgets应该只能读出xx,所以,最好还是用算法保证读取到完整一行,即判断是否读到了'\n'换行符,利用fread读,同时用fseek来定位读取地点:例如:(只是举个例,不保证调试通过哈,懒得去调试)
int offsetBegin=0;
int length=0;
char tmp='a';
while(tmp!=EOF)
{
tmp=fgetchar();// 不停取字符,判断是否是换行符
length++;//取一个字符就长度加1
while(tmp=='\n')//如果是换行符,说明一行到了。
{
fseek(fd,offsetBegin,0);//定位到行首
fread(fd,buf,length,xxxxxx);//读取一行
length=0;//为下次计算一行长度做准备
}
}
如果你知道要读第几行,在里面再加一个变量 low=5,那么每次读出一行后,将countlow++,判断其是否等于low来判断是否是你需要的那一行,如果不是,则不需要fread和fseek,将length=0并直接跳过,开始下行
第一行: xx yy zz 用fgets应该只能读出xx,所以,最好还是用算法保证读取到完整一行,即判断是否读到了'\n'换行符,利用fread读,同时用fseek来定位读取地点:例如:(只是举个例,不保证调试通过哈,懒得去调试)
int offsetBegin=0;
int length=0;
char tmp='a';
while(tmp!=EOF)
{
tmp=fgetchar();// 不停取字符,判断是否是换行符
length++;//取一个字符就长度加1
while(tmp=='\n')//如果是换行符,说明一行到了。
{
fseek(fd,offsetBegin,0);//定位到行首
fread(fd,buf,length,xxxxxx);//读取一行
length=0;//为下次计算一行长度做准备
}
}
如果你知道要读第几行,在里面再加一个变量 low=5,那么每次读出一行后,将countlow++,判断其是否等于low来判断是否是你需要的那一行,如果不是,则不需要fread和fseek,将length=0并直接跳过,开始下行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询