学习小发现: 今天练习了C语言的几个题目,其中有一个关于求和的问题,要求实现输入多组数据a[]、b[],数据数未知,根据输入者输入的数据数而定,然后实现输出未知组数的数据和。此问题的核心问题就是怎样实现输入多组数据(不定个数)。
方法一:运用C语言中的EOF(用C语言处理多组数据,一把用ctrl+z结束,ctrl+z就是eof)
while(scanf("%d%d",&a[i],&b[i++])!=EOF);
方法二:
#includde<stdio.h> int main() { int a[100];//存储数据 int b[100];//存储数据 int number=0;//计数器char c;//判断是否输入完毕 int i=0;c=getchar();//接收数据 while(1) {ungetc(c,stdin);//将一个字符退回到输入流中 scanf("%d",&a[number]); scanf("%d",&b[number++]); c=getchar();if(c=='\n') { c=getchar(); if(c=='\n') break; } } for(i;i<number;i++) printf("%d",a[i]+b[i]); printf("\n"); return 0; }
这里主要介绍一下ungetc这个函数,今天最大的收获就是认识了解到了ungetc这个函数。
用法:(可直接调用)
作用:将一个字符退回到输入流中、
格式:int ungetc(char c,FILE *stream);c 要写入的字符,stream文件流指针。调用举例ungetc(c,stdin);、
输出参数:字符c——操作成功,EOF——操作失败
