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

これを試して :

        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);
             }

symb0にある場合は9それを印刷します。そして、あなたが述べたように、他のすべての文字、、(下と上)、他の記号を破棄spacenewlineますalphabats

于 2012-11-21T18:42:04.130 に答える
2

または、ライブラリisdigitから使用することもできます。ctype.h

while ( ( symb = getc( FileIn ) ) != EOF ) {
    if( isdigit( symb ) != 0 )
        printf("% c",symb);
}
于 2012-11-21T18:54:53.733 に答える