C 标准输入/输出


C语言将所有设备都当作文件。


标准输入/输出库中预先定义了3个标准输入/输出文件指针(file pointer),程序运行后可以访问这3个文件指针:

  • stdin,标准输入(standard input),键盘
  • stdout,标准输出(standard output),屏幕
  • stderr,输入输出错误(standard error),屏幕

读写一个字符

getchar函数从stdin中读取一个字符,如果stdin在文件尾,返回EOF(end of file,一个负整数,用于表示文件尾)。

putchar函数输出一个字符到stdout,成功返回输出的字符,失败返回EOF。

下面是读写一个字符的例子:

#include <stdio.h>
int main(int argc, const char * argv[]) {
    int c;

    printf("enter2 a char : ");  // 输入abc
    while ((c = getchar()) != EOF)
      putchar(c);   // abc

    return 0;
}

读写一个字符串

gets函数从stdin中读取一个字符串,直到读取到换行符('\n')或EOF。换行符被删除,一个'\0'被附加到字符串,以标识字符串的结束。

puts函数输出一个字符串到stdout,附加一个'\n'。

下面是读写一个字符串的例子:

#include <stdio.h>
int main(int argc, const char * argv[]) {
    char s[100];

    printf("enter a string : ");  // 输入 123
    gets(s);
    puts(s);  // 123

    return 0;
}

格式化输入输出

scanf函数从stdin中读取格式化数据。printf函数输出格式化字符串到stdout。

下面是格式化输入输出的例子:

#include <stdio.h>
int main(int argc, const char * argv[]) {
    char s[100];
    int i;

    scanf("%s %d", s, &i);  // 输入 hello 2
    printf("s: %s, i : %d \n", s, i);  // hello 2

    return 0;
}