C 语言输入输出基础
C 语言的输入输出通过标准库 <stdio.h>
实现,核心函数包括 printf()
、scanf()
、getchar()
、putchar()
等。
格式化输出:printf()
printf()
用于将数据格式化输出到标准输出(通常是屏幕)。
#include <stdio.h>
int main() {
int num = 42;
float pi = 3.14159;
printf("整数: %d\n浮点数: %.2f\n字符串: %s\n", num, pi, "Hello");
return 0;
}
%d
格式化整数,%.2f
保留两位小数,%s
输出字符串。
格式化输入:scanf()
scanf()
从标准输入读取数据并存储到变量中。
#include <stdio.h>
int main() {
int age;
printf("输入年龄: ");
scanf("%d", &age); // & 获取变量地址
printf("年龄: %d\n", age);
return 0;
}
- 注意变量前的
&
(取地址运算符),字符串数组除外。
字符输入输出
getchar()
和 putchar()
用于单个字符的读写。
示例:字符复制
#include <stdio.h>
int main() {
char c;
printf("输入字符: ");
c = getchar(); // 读取单个字符
printf("输出: ");
putchar(c); // 打印字符
return 0;
}
示例:逐字符读取文件(模拟)
#include <stdio.h>
int main() {
char c;
while ((c = getchar()) != EOF) { // EOF 表示文件结束
putchar(c);
}
return 0;
}
- 输入
Ctrl+D
(Unix/Linux)或Ctrl+Z
(Windows)触发EOF
。
字符串输入输出
gets()
和 puts()
用于字符串操作(注意 gets()
不安全,建议用 fgets()
)。
安全输入:fgets()
#include <stdio.h>
int main() {
char str[100];
printf("输入字符串: ");
fgets(str, sizeof(str), stdin); // 从标准输入读取
printf("输出: ");
puts(str); // 自动追加换行符
return 0;
}
fgets()
会保留换行符,需手动处理。
文件输入输出
通过 FILE
指针和 fopen()
、fclose()
等函数操作文件。
示例:写入文件
#include <stdio.h>
int main() {
FILE *file = fopen("test.txt", "w"); // 打开文件(写模式)
if (file == NULL) {
perror("文件打开失败");
return 1;
}
fprintf(file, "Hello, File!\n"); // 写入格式化数据
fclose(file); // 关闭文件
return 0;
}
示例:读取文件
#include <stdio.h>
int main() {
FILE *file = fopen("test.txt", "r");
if (file == NULL) {
perror("文件打开失败");
return 1;
}
char buffer[100];
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer);
}
fclose(file);
return 0;
}
二进制文件操作
fread()
和 fwrite()
用于二进制数据读写。
示例:写入二进制数据
#include <stdio.h>
struct Data {
int id;
float value;
};
int main() {
FILE *file = fopen("data.bin", "wb");
struct Data d = {1, 3.14};
fwrite(&d, sizeof(struct Data), 1, file);
fclose(file);
return 0;
}
示例:读取二进制数据
#include <stdio.h>
struct Data {
int id;
float value;
};
int main() {
FILE *file = fopen("data.bin", "rb");
struct Data d;
fread(&d, sizeof(struct Data), 1, file);
printf("ID: %d, Value: %.2f\n", d.id, d.value);
fclose(file);
return 0;
}
通过以上示例,可快速掌握 C 语言中不同场景下的输入输出操作。