zoukankan      html  css  js  c++  java
  • 信息学竞赛中C语言的输入输出

    不像C++中使用 iostream 库,在C语言中,通过函数的形式进行输入和输出。C语言中最普遍的输入函数是 scanf,输出函数是 printf。
    我们通过下面两个示例程序来比较一下C++和C的输入输出的区别。

    C++输入输出示例:

    #include <iostream>
    using namespace std;
    int main()
    {
        int a, b;
        cin >> a >> b;
        cout << a + b << endl;
        return 0;
    }
    

    C输入输出示例:

    #include <stdio.h>
    int main()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("%d
    ", a+b);
        return 0;
    }
    

    这两个程序的功能是一样的,都是:输入 (a)(b),输出 (a+b)

    scanf(scan function,scan 是“扫描”的意思,f 是 function(“函数”)的首字母)用于输入,它的第一个参数是一个字符串,后面的参数都是要输入变量的地址。
    %d% 是 “占位符”,它表示这里要输入一个变量,d 是“十进制(decimal)” 的首字母。所以 %d 表示的是 “我这个位置要输入一个十进制整数”,即一个 int 类型的数。

    不同的数据类型对应的 % 后面跟的字符不尽相同,常用的如下:

    • int:d
    • long:ld
    • long long:lld
    • float:f
    • double:lf
    • char:c
    • 字符数组:s

    scanf的第二个参数开始就是要输入变量的地址,我们用 &a 表示变量 a 的地址,&b 表示变量 b 的地址。

    printf(print function,print 是“打印”的意思,f 是 function 的首字母),用于输入,它的的第一个参数是一个字符串,后面的参数都是要输入的变量。

    字符输入函数

    getchar() 函数从命令行读取一个字符并返回,putchar(c) 函数用于输出一个字符 c。示例如下:

    #include <stdio.h>
    int main()
    {
        char c = getchar();
        putchar(c);
        return 0;
    }
    

    这个程序输入一个字符,并输出。

    我们可以使用 getchar 函数实现输入一行,并输出一行的功能:

    #include <stdio.h>
    int main()
    {
        char c;
        while ((c = getchar()) != '
    ') putchar(c);
        return 0;
    }
    

    字符串整行输入

    对于一个字符数组 s 来说
    下面两种方式都无法读取字符串中的空格:

    cin >> s;
    

    或者

    scanf("%s", s);
    

    这两句话都是碰到空格或回车就读取中断了。

    C语言中使用 gets 函数读取一整行(包括空格),用法如下:

    #include <stdio.h>
    int main()
    {
        char s[1001];
        gets(s);
        puts(s);
        return 0;
    }
    

    这里的 puts 函数用于输出字符数组 s(输出部分仍然可以用 pintf 或者 C++的 cout)。puts 函数会多输出一个换行符。

    如果使用 iostream 库,则可以使用 cin.getline 函数,它会读取一整行字符串(包括空格),示例如下:

    #include <iostream>
    using namespace std;
    int main()
    {
        char s[1001];
        cin.getline(s, 1000);
        cout << s << endl;
        return 0;
    }
    

    其中 cin.getline 函数的子一个参数为字符数组,第二个参数为最多接收的字符数。

  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/quanjun/p/14348450.html
Copyright © 2011-2022 走看看