在主要功能中,我具有以下功能:
int main(){
FILE *fp;
char ch;
char name[100];
printf("Create file with name: ");
scanf("%s", &name);
fp = fopen(name, "w");
printf("Enter data to be stored in the file: ");
while((ch=getchar())!=EOF){
if(isNumeric(ch)){
putc(ch,fp);
}
}
fclose(fp);
return 0;
}
它将使用创建一个文件并在其中存储数据(由用户直到输入流或Ctrl + Z为止)getchar()
。我想检查所提供的数据是否为数字,但是我遇到了麻烦。我已经阅读了许多主题,所有答案都提出了建议,isdigit()
但是它不能验证带有浮点数的数字。这是我的isNumeric()
功能:
int isNumeric (const char * s)
{
if (s == NULL || *s == '\0' || isspace(*s))
return 0;
char * p;
strtod (s, &p);
return *p == '\0';
}
此处的基本问题isNumeric
是设计用来确定字符串是否为有效数字,但是isNumeric
一次只给出一个字符。
若要解决此问题,您需要一个char
存储字符的数组,直到达到该数组应包含完整数字的位置为止。然后使用检查数组isNumeric
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句