- 论坛徽章:
- 0
|
如何用C去读不定个数的数字?谢谢!!
我写了一个只用fgetc()的实现。[Code]
#include <stdio.h>;
#define MAXLEN 10
static int ch;
static FILE * input_file;
/*初始化,成功返回1,失败返回0*/
int get_num_init(const char * file_name)
{
input_file=fopen(file_name, "r");
if(input_file==NULL)
return 0;
ch=fgetc(input_file);
if(ch==EOF)
return 0;
else
return 1;
}
/*从输入文件中取得一个数字,成功返回1,失败返回0,注意,失败有可能是读到非法字符,也可能是到达文件尾*/
int get_num(int * num)
{
while((ch==' ')||(ch=='\t')||(ch=='\n'))
ch=fgetc(input_file);
if((ch<'0')||(ch>;'9'))
return 0;
*num=ch-'0';
do
{
ch=fgetc(input_file);
if((ch>;='0')&&(ch<='9'))
*num=*num*10+ch-'0';
}while((ch>;='0')&&(ch<='9'));
return 1;
}
int main(int argc, char ** argv)
{
int values[MAXLEN];
int values_len;
int i;
if(argc!=2)
{
printf("运行方式:%s 文件名\n",argv[0]);
return 0;
}
if(!get_num_init(argv[1]))
{
printf("初始化失败\n");
return 0;
}
for(values_len=0; (values_len<MAXLEN)&&get_num(values+values_len); values_len++);
for(i=0; i<values_len; i++)
printf("%d\n",values[i]);
}
[/Code] |
|