【C语言的输入输出】

本文详细介绍了C语言中的基本输入输出函数,包括scanf和printf的使用,以及字符串相关输入输出的sscanf和sprintf函数。同时,还探讨了文件相关输入输出的fscanf和fprintf函数,通过实例展示了如何进行文件的读写操作。最后,提供了两个练习题目,分别是计算输入数字的位数和读取包含空格的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入输出


一、基本输入输出

1.scanf函数
  • 头文件:stdio.h
  • 原型:int scanf(const char *format, ...)
  • 返回值:输入字符的数量
  • format:格式控制字符串
  • …:可变参数列表
2.printf函数
  • 头文件:stdio.h
  • 原型:int printf(const char *format, ...)
  • 返回值:输出字符的数量
  • format:格式控制字符串
  • …:可变参数列表
具体代码
#include <stdio.h>
int main()
{
    int n1,n2,n3,n4;
    scanf("%d%d%d%d",&n1,&n2,&n3,&n4);
    printf("scanf = %d.%d.%d.%d\n",n1,n2,n3,n4);
    return 0;
}

运行如图
运行如图

二、字符串相关输入输出

  • sscanf函数:从字符数组输入内容
  • sprintf函数:向字符串输出内容
具体代码
#include <stdio.h>
int main()
{
    int n=1,i;
    int arr[4]; 
    char str[100];
    sprintf(str,"%d.%d.%d.%d",192,168,1,0);
    printf("str = %s\n",str);
    sscanf(str,"%d.%d.%d.%d",&arr[0],&arr[1],&arr[2],&arr[3]);
    for(i=0; i < 4; i++){
    	printf("%d\n",arr[i]);
			}
    
}

运行如图
运行如图

三、文件相关输入输出

  • fscanf函数
  • fprintf函数

1.创建并写入文件 output.txt

#include <stdio.h>
int main()
{
    int n=1,i;
    int arr[4]; 
    char str[100];
    sprintf(str,"%d.%d.%d.%d",192,168,1,0);
    printf("str = %s\n",str);
    sscanf(str,"%d.%d.%d.%d",&arr[0],&arr[1],&arr[2],&arr[3]);
    for(i=0; i < 4; i++){
    	printf("%d\n",arr[i]);
			}
    FILE *fp = fopen("./ouput.txt","w");//相关路径
	fprintf(fp,"str = %s\n",str);
	fclose(fp); 
    return 0;
}

1.读文件 output.txt,可更改保存

#include <stdio.h>
int main()
{
    int n=1,i,offset = 0;
    int arr[4]; 
    char str[100],ans[100],temp; 
	FILE *fin = fopen("./ouput.txt","r");
	//%d, %f, %c, %s等,分别表示读入一个整数,浮点数,字符,字符串。还可以加上控制,如%ld,表示读入一个长整型数,%20s表示最多读入20个字符。%s会跳过前面的空白符,但是不会跳过后面的空白符;%c不会跳过空白符,所以使用%c.
	while (fscanf(fin,"%c",&temp)!=EOF){
		offset += sprintf(ans + offset ,"%c",temp);
	} 
	fclose(fin);
	printf("%s",ans);
    return 0;
}

四、练习

  • 计算输入数字的位数
 #include <stdio.h>
int main()
{
   int n;
   while(scanf("%d",&n)!=EOF){
   	printf("位数 = %d\n",printf("%d",n));
    return 0;
}
  • 读入一个行字符串(可能包含空格),输出这个字符串中字符的数量

无法读入空格符号

#include <stdio.h>
int main()
{
   char str[100];
   scanf("%s",str);
   printf("%s\n",str);
   return 0;
}

可读入字符串

#include <stdio.h>
int main()
{
   char str[100];
   scanf("%[^\n]s",str);//[ ]字符匹配集,^:除了
   printf("%s\n",str);
   return 0;
}

加循环

#include <stdio.h>
int main()
{
   char str[100];
   while(scanf("%[^\n]s",str)!= -1){
   	getchar();
   	printf("有%d个字符\n",printf("%s",str));
   }
   return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值