| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 518 人关注过本帖
标题:关于逐个读取同一目录下txt文本的问题。
只看楼主 加入收藏
xq1995
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-2-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
关于逐个读取同一目录下txt文本的问题。
我百度后发现只有查找到某个目录下的所有文本,但是好像做不到打开读取它,我自己在vc上瞎试了很多次fopen然后失败了,我就想问问有方法不?
下面这个程序只能查找到目录下的文本,能加几行程序来实现逐个读取吗?
#include<io.h>
#include<stdio.h>
int main()
{
long Handle;
struct _finddata_t FileInfo;
if((Handle=_findfirst("D:\\*.txt",&FileInfo))==-1L)
printf("没有找到匹配的项目\n");
else
{
printf("%s\n",FileInfo.name);
while( _findnext(Handle,&FileInfo)==0)
printf("%s\n",FileInfo.name);
_findclose(Handle);
}
return 0;
}

已经找了一个多小时了,智商着急,自己试也失败了。现在对单个txt文本的操作已经自己编好了,每个txt文本都是一样的操作,所以我就想能不能挨个打开目录下的txt文本进行操作。毕竟我如果把操作复制几十次,写入几十次文件路径是很丑陋的。
貌似这个程序应该不会太复杂。
搜索更多相关主题的帖子: include 百度 项目 
2015-02-04 20:30
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
我来教你一个最简单的实现方法罢

程序代码:
#include <stdio.h>

#define MAX (100)

int main(int n, char **argv)
{
    FILE *open = NULL;
    char out[MAX] = {0};
    if (n != 2)
        return -1;
    if ((open = (fopen(argv[1], "r"))) != NULL)
    {
        fgets(out, MAX - 1, open);
        fclose(open);
        puts(out);
    }
       
    return 0;
}


代码很简单 你只要把你的代码改成读取第一个参数就行了 这个不难罢 主函数的参数

然后用一个脚本来列举所有的txt文件 你既然用Windows 就是BAT了

for /f "delims=" %%i in ('"dir /b *.txt"') do a.exe %%i


这里假设你的可执行文件名字是a.exe

虽然我非常反感BAT 但百度一下也能写出来

然后运行一下这个bat就出结果了

Z:\>run.bat

Z:\>for /F "delims=" %i in ('"dir /b *.txt"') do a.exe %i

Z:\>a.exe a.txt
ddd


Z:\>a.exe b.txt
aaa


缺点是 只能对同级目录里面的进行操作 如果有子目录 就不灵了 那需要递归查询 不过这个"quick-and-dirty"的解决方案已经够好了
收到的鲜花
  • xq19952015-02-05 15:41 送鲜花  3朵  
2015-02-04 22:59
lovegh
Rank: 5Rank: 5
来 自:图灵学院
等 级:职业侠客
威 望:3
帖 子:117
专家分:311
注 册:2015-1-23
收藏
得分:0 
有个比较不通用的办法,就是你把文件有规则的命名,比如1,2,3,4,5,6这样。然后用一个for循环依次打开就可以了。不然的话,应该就要用到windows的API了吧,我也不熟悉~~~。

别老是写代码,要多陪妹子,多了解老婆大人,血淋淋的教训。
2015-02-04 23:20
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
http://chris-an-emacser.tk/2015/02/04/Multi-Languages-Process-Files/

我总结了一个多语言版本 这几种语言能涵盖这个星球上所有"差不多"的环境了
2015-02-04 23:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
楼主既然说“在vc上瞎试了很多次fopen然后失败了”,那你得把代码贴出来呀
在你贴出来的代码中,根本就没看到有用 fopen 函数。
2015-02-05 08:36
快速回复:关于逐个读取同一目录下txt文本的问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030405 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved