C语言是一种通用的、过程式的计算机编程语言,广泛应用于各种软件开发领域,在C语言中,输入和输出是程序与用户之间进行交互的重要方式,本文将详细介绍C语言中的输入和输出操作,包括基本的输入输出函数、格式化输入输出以及文件操作等内容。
基本输入输出函数
1、printf()函数:用于输出数据到屏幕或文件中,其原型为:
int printf(const char *format, ...);
format是一个字符串,用于指定输出数据的格式;...表示可变参数列表,用于传递需要输出的数据。
2、scanf()函数:用于从标准输入设备(通常是键盘)读取数据,其原型为:
int scanf(const char *format, ...);
format是一个字符串,用于指定输入数据的格式;...表示可变参数列表,用于存储读取到的数据。
格式化输入输出
1、格式化输出:使用printf()函数时,可以通过格式化字符串来控制输出数据的格式,常用的格式化字符有:
- %d:输出十进制整数;
- %f:输出浮点数;
- %c:输出一个字符;
- %s:输出一个字符串;
- %x、%X:以十六进制形式输出整数;
- %o:以八进制形式输出整数。
以下代码将输出一个整数和一个浮点数:
#include <stdio.h>
int main() {
int a = 10;
float b = 3.14;
printf("a = %d, b = %.2f
", a, b);
return 0;
}
2、格式化输入:使用scanf()函数时,可以通过格式化字符串来控制输入数据的格式,常用的格式化字符与printf()函数相同,以下代码将从键盘输入一个整数和一个浮点数:
#include <stdio.h>
int main() {
int a;
float b;
printf("请输入一个整数和一个浮点数:");
scanf("%d %f", &a, &b);
printf("a = %d, b = %.2f
", a, b);
return 0;
}
文件操作
除了标准输入输出设备外,C语言还可以通过文件进行输入输出操作,以下是一些常用的文件操作函数:
1、fopen()函数:用于打开一个文件,其原型为:
FILE *fopen(const char *filename, const char *mode);
filename是要打开的文件名;mode是文件打开模式,如"r"表示只读模式,"w"表示写入模式,"a"表示追加模式等,返回值是一个指向FILE结构体的指针,如果打开失败则返回NULL。
2、fclose()函数:用于关闭一个文件,其原型为:
int fclose(FILE *stream);
stream是已打开的文件指针,成功关闭文件后返回0,否则返回非0值。
3、fprintf()函数:用于向文件中写入数据,其原型为:
int fprintf(FILE *stream, const char *format, ...);
stream是已打开的文件指针;format和...的含义与printf()函数相同,成功写入数据后返回写入的字节数,否则返回负值。
4、fscanf()函数:用于从文件中读取数据,其原型为:
int fscanf(FILE *stream, const char *format, ...);
stream是已打开的文件指针;format和...的含义与scanf()函数相同,成功读取数据后返回读取的变量个数,否则返回EOF(End Of File),EOF是一个特殊的值,表示文件结束或读取错误。
5、feof()函数:用于判断文件是否到达末尾,其原型为:
int feof(FILE *stream);
stream是已打开的文件指针,如果文件到达末尾则返回非0值,否则返回0,注意,当读取到EOF时,feof()函数也会返回非0值,在判断文件是否到达末尾时,还需要检查读取操作是否成功。
while (!feof(file) && fscanf(file, "%d", &n) == 1) { /* 处理数据 */ }
示例代码
以下是一个完整的C语言程序示例,该程序从键盘输入两个整数,计算它们的和并输出结果,然后将结果写入到一个文件中:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> // for strerror() function in case of error opening file for writing or reading data from it. FILE *fp; int n1, n2, sum; fp = fopen("result.txt", "w"); if (fp == NULL) { printf("Error opening file for writing! Error code: %d - %s", errno, strerror(errno)); exit(EXIT_FAILURE); } printf("Enter two integers: "); scanf("%d %d", &n1, &n2); sum = n1 + n2; printf("Sum: %d
", sum); fprintf(fp, "Sum: %d
", sum); fclose(fp); fp = fopen("result.txt", "r"); if (fp == NULL) { printf("Error opening file for reading! Error code: %d - %s", errno, strerror(errno)); exit(EXIT_FAILURE); } while (!feof(fp)) { printf("%s", fgets(buffer, sizeof(buffer), fp)); } fclose(fp); return 0; } int main() { /* Your code here */ } output: Enter two integers: 5 7 Sum: 12 Sum: 12


发表评论