| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1190 人关注过本帖
标题:我想读取txt文件中的网址,但无法读取与写入,求各位大神看看,帮帮忙!
只看楼主 加入收藏
时间之城
Rank: 2
等 级:论坛游民
帖 子:8
专家分:18
注 册:2016-10-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
我想读取txt文件中的网址,但无法读取与写入,求各位大神看看,帮帮忙!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<direct.h>
void main()
{
    FILE *f1,*fp,*f2;//文件f2是缓存区,f1存放网址
    int web_numble = 0;
    char ch;
    char str[10000000];
    char temp[10];//为了方便存档
    char text[8];
    char compare[] = "ttps://";
    f1=fopen("D://f//ppp.txt","w");
    f2=fopen("D://f//sppp.txt","w");
     fopen_s(&fp,"D://f//test.txt","r");//判断文件
     for(int i=0;i<10000000;i++)
     {
        str[i]=fgetc(fp);
     }
     for(int j=0;j<10000000;j++)
     {
         fputc(str[j],f2);
     }
    for(;;)
  {
    ch=fgetc(f2);            //查找字符
    if(ch == EOF) break;     //到达文件尾跳出      
      if(ch=='h')            //查找到指定字符
     {
        fgets(text,8,f2);
        if(strcmp(text,compare) == 0)//比较选出网址
      {
            web_numble+=1;
         strcpy("https://",temp);  //打印出网址头
         fputs(temp,f1);
         for(;;)
       {
          ch=fgetc(f2);    //判断是否是网址尽头
        if(ch == '"') break;
        else if(ch == ')') break;
        else if(ch == '>') break;
        else if(ch == 'NULL') break;
        else
            fputc(ch,f1);
        }
      }
      fputc('\n',f1);//换行输入
     }
       fprintf(f2,"\n");//换行继续查找
    }

      fclose(fp);
      fclose(f1);
      fclose(f2);
}
搜索更多相关主题的帖子: compare include 
2016-10-30 11:59
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:10 
我不知道啥情况呀,
文件位置,的双斜杆不知道会不会被当成注释,已经好久没写东西了,都忘了好多
2016-10-30 13:26
时间之城
Rank: 2
等 级:论坛游民
帖 子:8
专家分:18
注 册:2016-10-12
收藏
得分:0 
双斜杠就是注释,你能帮我看看哪儿出问题了嘛?
2016-10-30 16:53
时间之城
Rank: 2
等 级:论坛游民
帖 子:8
专家分:18
注 册:2016-10-12
收藏
得分:0 
文件的双斜杠不是注释
2016-10-30 16:54
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:10 
无法读取的是那个文件,无法写入的又是那个文件。下次麻烦说清楚来。
 for(int j=0;j<10000000;j++)
     {
         fputc(str[j],f2);
     }
这之前的代码应该都没问题。
  for(;;)
  {
    ch=fgetc(f2);  
/*那么问题来了,f2是以只写"w"的方式打开。这里要读取,明显的方式不对。所以在这个循环之前,应该先关闭f2再以"r"的方式打开。或者一开始就以"w+"的方式打开文件,但是在这个循环之前你要将文件指针重新指向文件开头。*/

顺便说一句:为什么你要用10000000这个数字来限定读取的字符。你可以加上一个测量文件长度的代码,库里就有这类函数,用起来很方便。

2016-10-30 20:50
时间之城
Rank: 2
等 级:论坛游民
帖 子:8
专家分:18
注 册:2016-10-12
收藏
得分:0 
知道了,谢谢啊
2016-11-05 16:34
快速回复:我想读取txt文件中的网址,但无法读取与写入,求各位大神看看,帮帮忙 ...
数据加载中...
 
   



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

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