zoukankan      html  css  js  c++  java
  • C/C++中输入多组数据方法

    --------开始--------

            对于刚开始学编程的人来说每次基本上就是一次数据输入,多次的话基本也是会给定一个数组的大小,但随着做刷算法题开始,题目有的会不直接告诉输入几组数据,基本输入都是多组数据,对此不得不学习输入多种数据的方法。

            关于文件结束符EOF
            EOF 是 End Of File 的缩写,就是文件结束的意思。

    EOF在C语言中是在标准库中定义的一个宏,需要注意的是,EOF不是一个字符,它是从文件中读取到的一个字符,通常被定义为 int 型的一个负数 // 例如-1.

    方 法 一 :

    #include <stdio.h>
    
    int main()
    {
        int n;
        while(scanf("%d",&n) != EOF)
        {
            printf("%d",n);
        }
        return 0;
    }

    在C语言中使用while循环语句,判断输入数据是否为文件结束符,如果不是就能够达到多组输入的结果。

    方 法 二 :

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        int n;
        while(cin >> n)
        {
             cout << n << endl;  
        }
        return 0;
    }

    在C++中也运用while语句,原理与C语言中类似,while输入语句不断检查输入的值是否为文件结束的条件,进而得到输入多组数据的结果。

    方 法 三 :

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            cout << n << endl;
        }
        return 0;
    }

    这种方法在C和C++中相同,在scanf前加个~(按位取反),就是把二进制中的0变成1,1变成0,用在这里导致只有scanf返回-1,循环才会结束,也就是要返回EOF为止。

    while (~scanf("%d",&n)) 相当于 while (scanf("%d",&n)!=EOF)

    --------结束--------

  • 相关阅读:
    java堆
    本地方法栈
    java虚拟机栈
    Java 程序计数器
    面向对象 基本概念 复习
    if __name__=='__main__'
    偏函数与模块
    可变参数与关键字参数(复习材料)
    匿名函数
    闭包
  • 原文地址:https://www.cnblogs.com/chuyds/p/10625037.html
Copyright © 2011-2022 走看看