C语言 ungetc(ch, stdin);这语句的作用?有劳各位解释一下
#include<stdio.h>#include<stdlib.h>voidmain(){inti;intsum=0;charch;printf("Pleaseinpu...
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i;
int sum = 0;
char ch;
printf("Please input :\n");
while(scanf("%d",&i)==1)
{
sum += i;
while((ch=getchar())==' ');
if(ch == '\n')
{
break;
}
ungetc(ch, stdin);
}
printf("result: %d",sum);
printf("\n");
system("pause");
}
--------------------------------------------
ungetc(ch, stdin);
这句语句什么作用?有劳各位 通俗地 解释一下 展开
#include<stdlib.h>
void main()
{
int i;
int sum = 0;
char ch;
printf("Please input :\n");
while(scanf("%d",&i)==1)
{
sum += i;
while((ch=getchar())==' ');
if(ch == '\n')
{
break;
}
ungetc(ch, stdin);
}
printf("result: %d",sum);
printf("\n");
system("pause");
}
--------------------------------------------
ungetc(ch, stdin);
这句语句什么作用?有劳各位 通俗地 解释一下 展开
展开全部
用 法
编辑
int ungetc(int c, FILE *stream);
形参:
c: 要写入的字符;
stream:文件流指针
返回值:
字符c - 操作成功,EOF - 操作失败(int)
ungetc(ch, stdin);将你读到的字符回退到输入流中
比如上面的程序你先输入数字25,scanf读到i中,加到sum中,然后你再输入,
调用ch=getchar(),发现ch不是' '也不是'\n',而是一个数,比如’7‘,
显然这是你要继续加到sum中的数,要用scanf读到i中,但是你已经将这个'7'
用getchar读出来了,只好用ungetc再把这个'7'给退回去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
意思是屏幕先输出“please input”然后scanf代表键盘输入,再依据判断信息,估计是一个累加的程序,程序不完整看不太出来。希望能帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ungetc是一个函数
功 能 把一个字符退回到输入流中
用 法 int ungetc(char c, FILE *stream);
输入参数 c 要写入的字符,stream 文件流指针
输出参数 字符c - 操作成功,EOF - 操作失败
功 能 把一个字符退回到输入流中
用 法 int ungetc(char c, FILE *stream);
输入参数 c 要写入的字符,stream 文件流指针
输出参数 字符c - 操作成功,EOF - 操作失败
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把一个字符退回到输入流中
更多追问追答
追问
不退回会怎么样呢?比如我要输入22 33 33 44,想请问具体每个步骤是怎么样的呢?
追答
#include
#include
void main()
{
int i;
int sum = 0;
char ch;
printf("Please input :\n");
scanf("%d",&i);
if(i==1)
{
sum += i;
//while(ch=getchar()==' ');
//if(ch == '\n')这里while里面的判断不会成立
//{
//break;
//}
}
printf("result: %d",sum);
printf("\n");
//system("pause");
}你就跟我说一下你想实现什么功能吧 有点迷糊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询