| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:文件读的问题!
只看楼主 加入收藏
jackey163
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2005-7-21
收藏
 问题点数:0 回复次数:4 
文件读的问题!

#include "stdio.h"
#include "iostream.h"
#include "string.h"

char* GetTablename(char *FilePath, char *TableName)
{
FILE *fp1;
char line[100];
char *p;
bool bol = false;

fp1 = fopen( FilePath, "r" );
while(!feof(fp1))
{
if( fgets( line, 100, fp1 ) == NULL)
return NULL;

p = strtok(line, " ");
if (strcmp(p, TableName) == 0)
{
bol = true;
}

p = strtok(NULL, " ");
if(bol)
{
return p;
}

}
fclose(fp1);

return NULL;
}

void main()
{
char *q;

q = GetTablename( "D:\\111.txt", "tablename1");

cout<< q << endl;
}

输出是9@
应该是aaa 啊

D:\\111.txt
tablename1 aaa
tablename2 bbb

改变了下TXT的数,还是错的

搜索更多相关主题的帖子: include return false 
2006-06-30 13:56
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
恕我直言,你这个程序设计的任务究竟是什么呢?
是把D:\\111.txt的每1行还是第1行还是最后1行读出来?
实在不得要领呢。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-30 14:11
jackey163
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2005-7-21
收藏
得分:0 
就是读第一行的第2个字符串,
这个是我们公司的一个项目中的问题,
前面是表的英文名,后面是表的名字.

.net 方面可以交流下 MSN:jackeyhuang123@
2006-06-30 14:13
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
既然如此
你的那个while(!feof(fp1)){ }
用意何在呢?
它可是往死里读的呀!

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-30 14:17
jackey163
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2005-7-21
收藏
得分:0 
以下是引用–★–在2006-6-30 14:17:01的发言:
既然如此
你的那个while(!feof(fp1)){ }
用意何在呢?
它可是往死里读的呀!

读每一行文件啊,,
这里是要传2个参数,一个是英文名,要返回是表中文名,

错误找到了,因为返回的是指针,前面涵数完了,指针指向的地址也清掉了,所以最后打出来的是乱码.
把返回的P指针对应的地址LINE变成公共变量就行.


#include "stdio.h"
#include "iostream.h"
#include "string.h"

char* GetTablename(char *FilePath, char *TableName, char *line)
{
FILE *fp1;
char *p;
bool bol = false;

if ((fp1 = fopen( FilePath, "rt" )) == NULL)
{
return NULL;
}

fp1 = fopen( FilePath, "r" );

while(!feof(fp1))
{
if( fgets( line, 100, fp1 ) == NULL)
return NULL;

p = strtok(line, " ");
if (strcmp(p, TableName) == 0)
{
bol = true;
}

p = strtok(NULL, " ");
if(bol)
{
cout<< p << endl;
return p;
}

}
fclose(fp1);

return NULL;
}

void main()
{
char *q;
char line[100];
q = GetTablename( "D:\\111.txt", "t2", line);
if(q != NULL)
{
cout<< q << endl;
}
}


.net 方面可以交流下 MSN:jackeyhuang123@
2006-06-30 14:40
快速回复:文件读的问题!
数据加载中...
 
   



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

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