c输入&输出

简介: c输入&输出

C语言的输入与输出是程序与用户进行交互的重要环节。下面,我将详细讲解C语言中输入与输出的相关知识,并通过示例代码进行演示。

一、标准输入输出函数

在C语言中,标准输入输出主要通过stdio.h头文件中的函数实现,其中最常用的函数是printfscanf

1. printf函数

printf函数用于向标准输出(通常是控制台)打印格式化的字符串。其基本语法为:

int printf(const char *format, ...);

format是一个格式字符串,可以包含普通字符和格式占位符,后面跟着可变数量的参数,这些参数将替换格式字符串中的占位符。

示例:

#include <stdio.h> 
int main() { 
int a = 5; 
float b = 3.14; 
printf("整数是:%d,浮点数是:%f\n", a, b); 
return 0; 
}

在这个例子中,%d是整数的格式占位符,%f是浮点数的格式占位符。程序运行时,会输出“整数是:5,浮点数是:3.140000”。

2. scanf函数

scanf函数用于从标准输入(通常是键盘)读取数据,并根据格式字符串解析数据。其基本语法为:

int scanf(const char *format, ...);

printf类似,scanf也使用格式占位符来指示要读取的数据类型。读取的数据将存储在后面的参数中,这些参数需要使用指针来传递变量的地址。

示例:

#include <stdio.h> 
int main() { 
int a; 
float b; 
printf("请输入一个整数和一个浮点数:\n"); 
scanf("%d%f", &a, &b); 
printf("你输入的整数是:%d,浮点数是:%f\n", a, b); 
return 0; 
}

在这个例子中,用户被提示输入一个整数和一个浮点数。scanf函数读取这两个值,并将它们存储在变量ab中。然后,程序使用printf输出这些值。

二、文件输入输出

C语言也支持文件输入输出,主要通过fopenfclosefscanffprintf等函数实现。

1. fopen函数

fopen函数用于打开一个文件,并返回一个文件指针。其基本语法为:

FILE *fopen(const char *filename, const char *mode);

filename是文件名,mode是打开模式,如"r"表示只读打开,"w"表示写入(会覆盖原有文件内容),"a"表示追加等。

示例:

FILE *fp = fopen("test.txt", "w"); 
if (fp == NULL) { 
perror("文件打开失败"); 
return 1; 
}

这段代码尝试以写入模式打开一个名为test.txt的文件,并返回一个文件指针fp。如果文件打开失败,fopen会返回NULL,并打印错误信息。

2. fprintf函数

fprintf函数用于向文件写入数据。其基本语法与printf类似:

int fprintf(FILE *stream, const char *format, ...);

示例:

fprintf(fp, "Hello, World!\n");

这段代码将字符串"Hello, World!\n"写入到前面打开的文件中。

3. fscanf函数

fscanf函数用于从文件读取数据。其基本语法与scanf类似:

int fscanf(FILE *stream, const char *format, ...);

示例:

char buffer[100]; 
fscanf(fp, "%99s", buffer); // 读取最多99个字符到buffer中,防止缓冲区溢出 
printf("从文件中读取到的数据是:%s\n", buffer);

这段代码会从前面打开的文件中读取一个字符串,并存储到buffer数组中。注意,这里使用了%99s来限制读取的字符数,以防止缓冲区溢出。

4. fclose函数

在完成文件操作后,应使用fclose函数关闭文件。其基本语法为:

int fclose(FILE *stream);

示例:

fclose(fp); // 关闭文件,释放资源

这段代码会关闭前面打开的文件,并释放与之相关联的资源。

总结与完整示例

下面是一个完整的示例程序,演示了标准输入输出和文件输入输出的基本用法:

#include <stdio.h> 
#include <stdlib.h> 
int main() { 
int a; 
float b; 
FILE *fp; 
char buffer[100]; 
// 标准输入 
printf("请输入一个整数和一个浮点数:\n"); 
scanf("%d%f", &a, &b); 
printf("你输入的整数是:%d,浮点数是:%f\n", a, b); 
// 文件输出 
fp = fopen("test.txt", "w"); 
if (fp == NULL) { 
perror("文件打开失败"); 
return 1; 
} 
fprintf(fp, "整数是:%d,浮点数是:%f\n", a, b); 
fclose(fp); 
// 文件输入 
fp = fopen("test.txt", "r"); 
if (fp == NULL) { 
perror("文件打开失败"); 
return 1; 
} 
fscanf(fp, "%99[^\n]", buffer); // 读取一行文本到buffer中 
printf("从文件中读取到的数据是:%s\n", buffer); 
fclose(fp); 
return 0; 
}

这个程序首先通过标准输入获取一个整数和一个浮点数,然后将这些数据写入到一个文件中。接着,程序打开这个文件,读取其中的数据,并通过标准输出打印出来。

相关文章
|
1月前
|
存储 C++
C++系列五:输入/输出
C++系列五:输入/输出
|
8月前
射极输出器
射极输出器(Emitter Follower)是一种常见的放大电路,也称为共射输出器。它由一个晶体管组成,通常是NPN型晶体管。
167 0
|
1月前
|
数据处理 C++ UED
C++程序中的输入与输出
C++程序中的输入与输出
28 2
|
1月前
|
C语言
输入&输出
【2月更文挑战第13天】输入&输出。
16 1
|
1月前
|
编译器 C++
【c++】C++输入&输出
【c++】C++输入&输出
【c++】C++输入&输出
|
1月前
|
C++
58C++的输入和输出
58C++的输入和输出
16 0
|
10月前
|
存储
I/O输入和输出详解
I/O输入和输出详解
|
8月前
|
编译器 C语言
C 输入 & 输出
C 输入 & 输出。
80 1
|
10月前
|
C++
|
存储 程序员 C++
C++ 中的基本输入/输出
C++ 附带的库为我们提供了许多执行输入和输出的方法。在 C++ 中,输入和输出以字节序列或更通常称为流的形式执行。
108 0