| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1787 人关注过本帖
标题:[求助]从一个包含有字母和数字的文本文件读入INT型变量
取消只看楼主 加入收藏
bitcai
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-23
收藏
 问题点数:0 回复次数:5 
[求助]从一个包含有字母和数字的文本文件读入INT型变量
问题:大概意思就是说,有一个文本文件,里面有字母有数字(全是整型而且没有负数),也有可能有有空格等,要求是提出其

中的数字,并且附值给一个变量.



我的做法:先用getc一个一个的把文本文件里面的内容当成字符形式读入并分开把数字附到一个数组里面,但是这样存储

到数组里的是字符形式的数字,然后我再用ASICⅡ代码把字符形式的数组,转化成了INT型的数组,然后在进行附值,但是这

样好象很笨,而且也比较麻烦.而且在把数字和字母分开的时候,我是这样做的,判断读入的字符的ASIC代码,不在数字范围

内的就输出空格,这样的结果是再把此字符型数组转化为INT型时,就得把空格转化为一个负数(比如-1)以区别其他正整数

和0.



请问:有没有更好的方法实现这个功能.
搜索更多相关主题的帖子: INT型 数字 变量 文本文件 字母 
2007-10-21 20:51
bitcai
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-23
收藏
得分:0 

这样不行啊,比如文本文件是这样的:abc123def456

要提出的是 x=123 和y=456 按照你那样就变成了 x=123456 了吧


2007-10-21 21:44
bitcai
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-23
收藏
得分:0 
你的方法行不通吧?
而且我看不懂这个:
if(sum)
{
data[k++]=sum;
sum=0;
}

2007-10-21 22:06
bitcai
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-23
收藏
得分:0 
哦,我去试试

2007-10-21 22:31
bitcai
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-23
收藏
得分:0 

这个是我按照你的方法写的:
[CODE]main()
{
int *fpold,*fpnew;
int sum,i,k;
int data[100];
char str[100];
fpold=fopen("old.txt","a+");
fpnew=fopen("new.txt","w+");
sum=0;
k=0;
for(i=0;i<strlen(str);i++)
{
fscanf(fpold,"%c ",&str[i]);
if(str[i]>='0'&&str[i]<='9')
{
sum=sum*10+str[i]-'0';
}
else
{
if(sum)
{
data[k++]=sum;
sum=0;
}
}
}
fprintf(fpnew,"%d ",sum);
fclose(fpold);
fclose(fpnew);
getch();
}[/CODE]

old.txt文本文件内容就只有:abc123def456
但是这个程序运行后new.txt上面只有个0!怎么回事啊


2007-10-21 23:31
bitcai
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-23
收藏
得分:0 
呵呵,刚学,还有的地方不熟悉,我今天早上在公司又写了一下,成功了:
[CODE]main()
{
FILE *fpold,*fpnew;
int sum=0,i,k=0;
char str[100];
fpold=fopen("old.txt","r");
fpnew=fopen("new.txt","w+");
for(i=0;i<100;i++)
{
fscanf(fpold,"%c ",&str[i]);
if(str[i]>='0'&&str[i]<='9')
{
sum=sum*10+str[i]-'0';
k++;
}
else
{
if(k>0)fprintf(fpnew,"%d ",sum);
k=0;
sum=0;
}
}

fclose(fpold);
fclose(fpnew);
getch();
}
[/CODE]

谢谢斑竹拉,主要是你的那个if(str[i]>='0'&&str[i]<='9')太好了!哈哈,没想到这个.
另外问下 getc();和fprintf(); 对字符来说是不是效果一样啊?

2007-10-22 12:42
快速回复:[求助]从一个包含有字母和数字的文本文件读入INT型变量
数据加载中...
 
   



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

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