如何仅从文本文件中读取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
答案 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
介于0
到9
之间,则会将其打印出来。并丢弃所有其他字符,如您所提到的space
,newline
,alphabats
(更低和更高),任何其他符号。
答案 1 :(得分:1)
或者您可以使用isdigit
库中的ctype.h
。
while ( ( symb = getc( FileIn ) ) != EOF ) {
if( isdigit( symb ) != 0 )
printf("% c",symb);
}