首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

txt怎么判断文件末尾

2013-03-06 
txt如何判断文件末尾txt中每一行都是文件路径,怎么判断到了文件末尾?我一行一行的读,读一行,生产一个路径

txt如何判断文件末尾
txt中每一行都是文件路径,怎么判断到了文件末尾?
我一行一行的读,读一行,生产一个路径节点,到了,末尾就不生成了
用什么fseek么?不对吧
[解决办法]
最后一个没有'\n'的  拿'\n'做判断的 最后一行额外处理下就行了
fread 读到0 就文件结束了。
[解决办法]
判断   EOF
[解决办法]
仅供参考

#include <stdio.h>
#include <string.h>
#define MAXLEN 1000
char ln[MAXLEN];
FILE *f;
int i,z;
int b,n,L;
int main(int argc,char **argv) {
    if (argc<2) {
        printf("Usage:%s fullpathfilename.ext\nget total blank/non-blank/total linenumbers.\n",argv[0]);
        return 1;
    }
    f=fopen(argv[1],"r");
    if (NULL==f) {
        printf("Can not open file [%s]!\n",argv[1]);
        return 2;
    }
    z=0;
    b=0;
    n=0;
    L=0;
    while (1) {
        if (NULL==fgets(ln,MAXLEN,f)) break;
        L=strlen(ln);
        if ('\n'==ln[L-1]) {
            if (0==z) {
                for (i=0;i<L-1;i++) {
                    if (!(' '==ln[i] 
[解决办法]
 '\t'==ln[i])) break;
                }
                if (i<L-1) z=1;//当前行不是空行
            }
            if (0==z) b++; else n++;
            z=0;
        } else {
            if (0==z) {
                for (i=0;i<L;i++) {
                    if (!(' '==ln[i] 
[解决办法]
 '\t'==ln[i])) break;
                }
                if (i<L) z=1;//当前行不是空行
            }
        }
    }
    fclose(f);
    if (L>0 && '\n'!=ln[L-1]) {


        if (0==z) b++; else n++;//最后一行末尾无'\n'也计算
    }
    printf("File:[%s] total blank/non-blank/total linenumbers is %d/%d/%d\n",argv[1],b,n,b+n);
    return 0;
}


[解决办法]
while(EOF!=fscanf(pFile,"%s",str))
{
  procedure...
}

热点排行