本人小菜,请教如何能使程序在不满足输入时提示用户,并重新等待用户输入
本人小菜,请问怎么能使程序在不满足输入时提示用户,并重新等待用户输入
本人写的小练习题如下,想修改为当用户输入n或m为非整数时,提示输入有误,并且自动等待输入,直到正确!
------解决思路----------------------
本人写的小练习题如下,想修改为当用户输入n或m为非整数时,提示输入有误,并且自动等待输入,直到正确!
#include<stdio.h>
#include<stdlib.h>
int main(void)
{ int n,m;
int (*ptr)[m];
printf("pls enter 2 number n &m. \n");
while(scanf("%d%d",&n,&m)==2)
{
ptr=(int(*)[m])malloc(n*m*sizeof(int));
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
scanf("%d",&ptr[i][j]);
printf("%-2d",*(*(ptr+i)+j));
}
}
return 0;
}
------解决思路----------------------
#include <stdio.h>
#include <string.h>
char s[80];
double d;
char c;
int main() {
while (1) {
printf("Input a double:");fflush(stdout);
rewind(stdin);
fgets(s,80,stdin);
if (strlen(s)>20) {
printf("Input too long(>20)!\n");
continue;
}
if (2==sscanf(s,"%lf%c",&d,&c)) {
if ('\n'==c) {
printf("%lg is a double.\n",d);
break;
}
}
if ('\n'==s[strlen(s)-1]) s[strlen(s)-1]=0;
printf("\"%s\" is NOT a double!\n",s);
}
return 0;
}