3

如何从文本文件中仅读取 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
4

2 回答 2

2

或者你可以isdigitctype.h图书馆使用。

while ( ( symb = getc( FileIn ) ) != EOF ) {
    if( isdigit( symb ) != 0 )
        printf("% c",symb);
}
于 2012-11-21T18:54:53.733 回答
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打印它之间。并丢弃您提到的所有其他字符spacenewline, alphabats(lower & upper) ,任何其他符号。

于 2012-11-21T18:42:04.130 回答