首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C来读取文件中的不确定数字解决思路

2012-03-08 
C来读取文件中的不确定数字一个文件中有如下形式的数字12364.1254(空格)1234564.132132(空格)6465465(完)

C来读取文件中的不确定数字
一个文件中有如下形式的数字
12364.1254(空格)1234564.132132(空格)6465465(完)
我想读取第一个数字12364.1254中的小数点前面的数字,并保存到一个变量中,其它的都不读取了;
还有,这个第一个数字12364.1254位是不定的,会随时间变大或者变小,或者是小数点前有5位,或者小数点前有10位;
能说一下标准C来实现我说的以上嘛?多谢

很简单的一个题~多谢

[解决办法]
不是有个空格吗,可以以空格为结束符。逐个读取直到遇到空格为止,用while
[解决办法]
伪代码,呵呵
fp=fopen();
rewind(fp);
while(!isdigit(c=getc(fp));
char tmp[];
while(isdigit(c))
{
temp[i]=c;
 c=getc(fp);
}
ftoa();
[解决办法]
ftoa应该还不对,因为结果是float类型的,可以itoa吧
[解决办法]
假如说你要的变量是:
int n;
则:
fp=fopen();
rewind(fp);
while((c=getc(fp)!='-' && !isdigit(c));//可以处理负数
char tmp[];
while(isdigit(c))
{
temp[i]=c;
 c=getc(fp);
}
n=itoa(tmp);//这步就是你想要的吧
[解决办法]
只要第一个数字的小数点前的数字好办:fscanf("%d",fp);
[解决办法]

C/C++ code
#include<stdio.h>#include<stdlib.h>#define MAX 255int main(){        char file_name[MAX] = "e:\\data.txt";    long n;    int flag;    FILE *fp;    if((fp=fopen(file_name, "r")) == NULL) {        printf("can't find the file(%s)!\n", file_name);        exit(1);    }    flag = fscanf(fp, "%ld", &n);    if(flag == 1) {        printf("n=%d\n", n);    }    else {        printf("读取第一个整数失败!\n");    }        return 0;} 

热点排行