仅从文本文件中读取C中的数字

时间:2012-11-21 18:36:03

标签: c text numbers

如何仅从文本文件中读取C中的数字。除了空格,符号,输入和字母外。

这就是我阅读文字的方式:

unsigned char symb, symb1;

FileIn = fopen("InCode.txt","rt"); 
while (!feof(FileIn))
    {
       symb=getc(FileIn);
       symb1=symb;
       printf("%c",symb1);
     }

这是它应该如何运作的:

/* Data in the file: */
12hj2 3h23j1

/* Output: */
1223231

2 个答案:

答案 0 :(得分:2)

试试这个:

        char symb ;
        unsigned char symb1;
        FILE *FileIn;
        FileIn = fopen("InCode.txt","rt"); // Haven't checked fopen failure
        while ((symb=getc(FileIn))!=EOF)
            {
               symb1= (unsigned char) symb;  
               if(symb1 >= '0' && symb1 <='9')
                 printf("%c",symb1);
             }

如果symb介于09之间,则会将其打印出来。并丢弃所有其他字符,如您所提到的spacenewlinealphabats(更低和更高),任何其他符号。

答案 1 :(得分:1)

或者您可以使用isdigit库中的ctype.h

while ( ( symb = getc( FileIn ) ) != EOF ) {
    if( isdigit( symb ) != 0 )
        printf("% c",symb);
}