码迷,mamicode.com
首页 > 其他好文 > 详细

no.1

时间:2017-09-22 20:09:05      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:printf   csharp   exit   main   enter   编写   tchar   blog   程序   

#include <stdio.h>
#include <stdlib.h>

void main()
{
      int i;
      int sum = 0;
      char ch;

      printf("请输入一串整数和任意数目的空格: ");

      while( scanf("%d", &i) == 1 )
      {
            sum += i;

            while( (ch=getchar()) == ‘ ‘ )//这里两个单引号之间是一个空格
                  ;
            if( ch == ‘\n‘ ) 
            {
                  break;
            }

            ungetc( ch, stdin );
      }
      
      printf("结果是: %d", sum);
      printf("\n");
      system("pause");
}
//编写一个程序,要求用户输入一串整数和任意数目的空格,这些整数必须位于同一行中,但允许出现在该行的任何位置。
//当用户按下键盘的Enter键时,数据输入结束。程序自动对所有的整数进行求和并打印结果

//
-1::判断输入的是不是整数,如果是整数,那么则加到总数中来
-2:判断输入的是不是空格,如果是空格,那么则不进行任何操作
-3:判断输入的空格是不是换行,如果这个空格是换行,那么则跳出这个判断

//
ungetc(ch, stdin);将你读到的字符回退到输入流中
比如上面的程序你先输入数字25,scanf读到i中,加到sum中,然后你再输入,调用ch=getchar(),发现ch不是‘ ‘也不是‘\n‘,而是一个数,比如’7‘,显然这是你要继续加到sum中的数,要用scanf读到i中,但是你已经将这个‘7‘用getchar读出来了,只好用ungetc再把这个‘7‘给退回去
//
scanf()函数返回的值的意义为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
就是说正确接收值的个数。此时scanf("%d",&i)要求输入一个int数。因此只要按格式输入一个int数,结果都是1.
假如scanf("%d%d%d",&i,&j,&k)。你输入时10 20 d则scanf返回为2

//
 if( ch == ‘\n‘ ) 
            {
                  break;
            }
当判断是换行时,则跳出。

//
system就是调用从程序中调用系统命令(和shell命令)。   
  system("pause")就是从程序里调用“pause”命令;   
  而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press   any   key   to   exit”的字,等待用户按一个键,然后返回。

  

no.1

标签:printf   csharp   exit   main   enter   编写   tchar   blog   程序   

原文地址:http://www.cnblogs.com/ZZiz/p/7576866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!