在C语言中输入和输出 一般涉及到文件描述符, 流和缓存的关系
例一:
#include <stdio.h>
#define MYPWD "/home/chenw/c/test.txt"
int
main(void)
{
FILE *fp;
char c;
if ((fp = fopen(MYPWD, "a")) == NULL) {
printf("can't open the file\n");
}
while ((c=getchar()) != EOF) { //从标准输入读入字符
fputc(c,fp); //把字符输出到文件中
putchar(c); //把字符输出到标准输出
}
fclose(fp);
return 0;
}
例二
#include <stdio.h>
#define MYPWD "/home/chenw/c/test.txt"
#define SIZE 1000
int
main(void)
{
FILE *fp;
char buffer[SIZE]; //分配内存空间
if ((fp = fopen(MYPWD, "a")) == NULL) {
printf("can't open the file\n");
}
while (fgets(buffer, SIZE, stdin) != NULL) { //从标准输入将size-1个字符到字符数组中
fputs(buffer, fp); //把字符串输出到文件中
fputs(buffer, stdout); //把字符串输出到标准输出
}
fclose(fp);
return 0;
}