【玩转Linux】标准IO函数
发布人:shili8
发布时间:2025-02-27 08:03
阅读次数:0
**玩转Linux**
**标准IO函数**
在Linux编程中,标准输入输出(Standard Input/Output)是指程序与用户交互的方式。标准IO函数提供了一种简单、统一的接口,让开发者可以轻松地处理输入输出操作。
###1. 标准IO函数概述标准IO函数主要包括以下几个方面:
* **stdio.h**:这是一个头文件,包含了所有标准IO函数的声明。
* **stdin**、**stdout**、**stderr**:这三个变量分别指向标准输入流、标准输出流和标准错误流。
* **getchar()**、**putchar()**:这些函数用于读取和写入单个字符。
* **gets()**、**puts()**:这些函数用于读取和写入字符串。
* **scanf()**、**printf()**:这些函数用于格式化输入输出。
###2. getchar() 和 putchar()
`getchar()` 函数用于从标准输入流中读取一个字符,而 `putchar()` 函数用于将一个字符写入标准输出流中。它们的使用非常简单:
c#include <stdio.h>
int main() {
int c;
//读取一个字符 c = getchar();
printf("你输入的字符是:%c
", c);
// 写入一个字符 putchar('A');
return0;
}
###3. gets() 和 puts()
`gets()` 函数用于从标准输入流中读取一行字符串,而 `puts()` 函数用于将一行字符串写入标准输出流中。注意,`gets()` 函数已经被废弃,因为它容易导致缓冲区溢出攻击。
c#include <stdio.h>
int main() {
char str[100];
//读取一行字符串 gets(str);
printf("你输入的字符串是:%s
", str);
// 写入一行字符串 puts("Hello, World!");
return0;
}
###4. scanf() 和 printf()
`scanf()` 函数用于从标准输入流中读取格式化数据,而 `printf()` 函数用于将格式化数据写入标准输出流中。它们的使用非常灵活:
c#include <stdio.h>
int main() {
int a, b;
float c;
//读取整数和浮点数 printf("请输入两个整数和一个浮点数:");
scanf("%d %d %f", &a, &b, &c);
printf("你输入的整数是:%d
", a);
printf("你输入的浮点数是:%f
", c);
// 写入格式化数据 printf("Hello, World! 我的年龄是:%d
",25);
return0;
}
###5. 文件IO标准IO函数不仅可以用于处理标准输入输出,还可以用于读取和写入文件。使用 `fopen()` 函数打开一个文件,使用 `fclose()` 函数关闭一个文件,使用 `fread()` 和 `fwrite()` 函数读取和写入文件。
c#include <stdio.h>
int main() {
FILE *fp;
// 打开一个文件 fp = fopen("test.txt", "w");
if (fp == NULL) {
printf("无法打开文件
");
return1;
}
// 写入文件 fprintf(fp, "Hello, World!
");
fclose(fp);
//读取文件 fp = fopen("test.txt", "r");
char c;
while ((c = fgetc(fp)) != EOF) {
printf("%c", c);
}
fclose(fp);
return0;
}
###6. 错误处理标准IO函数提供了一个 `errno` 变量用于存储错误代码。使用 `perror()` 函数打印错误信息。
c#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
// 打开一个文件 fp = fopen("test.txt", "w");
if (fp == NULL) {
perror("无法打开文件");
return1;
}
fclose(fp);
return0;
}
###7. 总结标准IO函数提供了一种简单、统一的接口,让开发者可以轻松地处理输入输出操作。它们的使用非常灵活,可以用于读取和写入文件,错误处理也非常重要。

