160917-关于OJ输入和输出

现在很多语言都实现了可以在线评测,语言对于OJ而言,现在更多是一种表达的方式,而真正的核心则在于自身的算法和你解题的逻辑

在国内的OJ平台,我个人比较牛客网,在国外的平台上hackerrank,主要有如下几个原因:

  1. 我本人是个颜值控,这两个平台的页面相对来说比较精美,尤其是国内高校的OJ平台,我都不想吐槽!
  2. 支持的语言比较多,牛客网包含笔试题和机试题,题量主要以国内的互联网公司和OJ平台为主。
#include  
#include 
#include 
#include 

int main()
{
    char input_string[105];
    scanf("%[^\n]",  input_string);  
    printf("%d", input_string);

    return 0;
}

其实在很多情况下,对字符串的输入和输出,我比较喜欢使用gets()和puts()这两个函数,相对scanf()和printf()而言,安全性比较差,我会在后续文章中讨论各种语言的各种输入和输出的对比,敬请关注。

对C++而言,大家都熟悉的某过于cin和cout

#include 
#include 
#include 
#include 

using namespace std;

int main()
{
    string input_string;

    getline(cin, inputstring);

    cout << input_string << endl;

    return 0;
}

在用C++进行OJ操作时,我个人常范的错误就是少写命名空间。建议在做OJ时还说写上命名空间,否则cin、cout、endl、还有string、stack之类的都要在前面加上std::,这样在做题目时甚是麻烦,不过在做工程时还是少加,因为工程中有很多命名空间,命名空间之间可能有函数重名。在后续文章中我会专门写一篇来讨论C++的命名空间问题已经C++的输入和输出问题。

我个人熟悉的编程语言有C、C++、Java、C#、PHP、Python、JavaScript;JavaScript在实际应用中也呈现暴涨之势,在github开源平台上有60%的代码是用javascript写的,足可见其可怕之势。

我们再来看Java,当初刚刚接触java时,没能很好的理解java的面向对象问题,毕竟我是从C转过去的吧!面向对象和面向过程这两种编程思想大家可以细细去体会一下。

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in); 
        String inputString = scan.nextLine(); 
        scan.close(); 
        System.out.println("Hello, World.");
        System.out.println(inputString);
    }
}

你可能感兴趣的:(160917-关于OJ输入和输出)