51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2788|回复: 4
打印 上一主题 下一主题

[求助] 如何将文件中的字符串读出来

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-24 13:07:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
testdata.txt文件中的内容为:
blackdog
rockandrool
thebattleofevermore
stairwaytoheaven
mistymountainhop
我要用LR的方法从文件中读出来。但尝试了很多方法都不行。
代码:
action {
char myfile,loannumber;
int i;
char filename[]="G:\testdata.txt";
myfile=(char)fopen(filename,"r");
for(i=1;i<5;i++)
{
   fscanf(myfile,"%s",loannumber");
   lr_out_message("loannumber %d: %s",i,loannumber);
}
}
但是执行起来却不对,提示内存错误。
这有个例子是个文件loaddata里的内容为
11111
22222
33333
44444
55555
代码:
actions{
  int myfile,loannumber,i;
  char filename[80]="G:\\loaddata.txt";
  myfile=(int)fopen(filename,"r");
  for(i=1;i<5;i++)
   {
     fscanf(myfile,"%D",loannumber);
     lr_out_message("loannumber %d: %d",i,loannumber);  
   }
}
文件里为数字的可以读出来,但文件是里字符串的就读不出来,真是烦死了。还请教高人指点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-7-24 13:42:40 | 只看该作者
自己又琢磨了一下。想出来了。
char *filename="G:\\loaddata.txt";
Action()
{
        long file;
        int i;
        char s[32];
        if((file=fopen(filename,"r"))==NULL)
        {
                lr_output_message("file is not exist");
                return -1;
        }
        for(i=0;i<5;i++)
        {
        fscanf(file,"%s",&s);
        lr_output_message("%s",s);
        }
        fclose(file);
        return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-7-24 13:44:56 | 只看该作者
读字符串的文件一定注意声明读文件的变量类型为long的。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-7-24 14:01:08 | 只看该作者
学习了,我记得以前我写过一段代码把需要的内容写到本地文件的.
LZ把FOR那段代码可以重新考虑一下,那是建立在知道有文件内容有多少行的基础之上,建议可以做个非空行判断自动读取.
读出内容的我用JAVA也写了个.
            try{
            
            String rs ="";
            int rsCount=0;
            DataInputStream file = new DataInputStream(new BufferedInputStream(new FileInputStream("D:\\sql.txt")));
            BufferedReader inbr = new BufferedReader(new InputStreamReader(file));
            while((rs = inbr.readLine()) != null){
                    rsCount++;   
                    System.out.println(rsCount + ":" + rs);   
                }
            }catch   (Exception   e)   {   
          System.out.println("IOException   error!");   
          e.printStackTrace();
            }
JAVA环境有点问题,没有编译,大概看看吧

[ 本帖最后由 断寒 于 2008-7-24 14:15 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-7-24 16:09:48 | 只看该作者
从loaddata.txt读出内容写入到loaddata1.txt
char *filename="G:\\loaddata.txt";
char *filename1="G:\\loaddata1.txt";
long file,file1;
char s[32];
int i;
Action()
{
        if((file=fopen(filename,"r"))==NULL)
                {
                        lr_output_message("file is not exist!");
                        return -1;
                }
        file1=fopen(filename1,"w");
        for(i=0;i<5;i++)
        {
        fscanf(file,"%s",&s);
        lr_output_message("%s",s);
        fprintf(file1,"%s\n",&s);
        }
                     fclose(file);
                     fclose(file1);
        return 0;
}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-20 21:44 , Processed in 1.763452 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表