当我们输入一串字符或者数字时,需要一种标志作为输入结束的标志,所以我总结了以下几种:
1.输入一串字符串以回车键作为输入结束的标志
char ch;while(((ch=getchar())!='n'){}
例1:输入一行字符,分别统计出其中英文字母、空格、数字、和其它字符的个数
#includeint main(){char c;int letters=0,space=0,digit=0,other=0;//赋值while((c=getchar())!='\n')//输入字符串,按回车键结束 {if(c>='A'&&c='a'&&c='0'&&c<='9')digit++;else if(c==' ')space++;elseother++;}printf("letters=%d\n",letters);printf("space=%d\n",space);printf("digit=%d\n",digit);printf("other=%d\n",other);return 0; }
2.输入一串数字,以CTRL+z作为输入结束的标志
方式一:
int n;while(scanf("%d",&n)!=EOF){}
方式二:
int n;while(~scanf("%d",&n)){}
例2:输入一组整数,以CTRL+z作为结束标志,求出这组整数的和。
#includeint main(){int a,sum,n;scanf("%d",&n);for(int i=0;i<n;i++){sum=0;while(scanf("%d",&a)!=EOF)//while(~scanf("%d",&a))//先回车在按CTRL+Z键,输入结束 {sum+=a;}printf("%d",sum);}}
3.以某个数字作为输入结束的标志(这里用0代替)
int n;while(scanf("%d",&n),n!=0){}
例3:输入一组整数,以数字0作为结束标志,求出这组整数的和。
#includeint main(){int n,sum=0;while(scanf("%d",&n),n!=0)//输入0,按回车键输入结束{sum+=n;}printf("%d",sum);return 0;}
(4)除了这几种之外还有输入多组数据的情况:
int n;scanf("%d",&n);for(i=0;i<n;i++)//输入n组数据{while(~scanf("%d",&n))//输入每组数据{}}
例4:n个数求和(多实例测试):
输入第一行是一个整数T,表示有T组测试实例;
每组输入包括两行:
第一行一个数n表示接下来会有n个整数;
第二行空格隔开的n个数。
#includeint main(){int T,n,x,sum[100];printf("多实例测试之n个数求和\n");printf("请输入实例测试组数"); scanf("%d",&T);for(int i=1;i<=T;i++){sum[i]=0;printf("第%d组\n",i);printf("请输入加数的个数:"); scanf("%d",&n);printf("请输入%d个数:\n",n);for(int j=0;j<n;j++){ scanf("%d",&x);sum[i]+=x;}printf("****************************\n");}for(int i=1;i<=T;i++)printf("第%d组的和为%d\n",i,sum[i]);return 0;}
以上就是我对C语言中几种输入方式的总结,我是编程小白,各位大佬不喜莫怪,欢迎各位编程大佬补充。