当前位置:首页 » 编程语言 » c语言读一行

c语言读一行

发布时间: 2024-04-24 04:10:25

c语言怎样一行一行读文件

C语言可以通过fgets函数一次读一行数据。

fgets函数原型如下:

char *fgets(char *buf, int bufsize, FILE *stream);

参数 说明

*buf: 字符型指针,指向用来存储所得数据的地址。

bufsize: 整型数据,指明存储数据的大小。

*stream: 文件结构体指针,将要读取的文件流。

fgets函数注意细节如下:

  1. 从文件结构体指针stream中读取数据,每次读取一行。

  2. 读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋''),如果文件中的该行,不足bufsize个字符,则读完该行就结束。

  3. 如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。

  4. 函数成功将返回buf,失败或读到文件结尾返回NULL

② c语言:从文件f1.txt读入一行字符,将其中所有小写字母改写为大写字母,然后输出到f2.txt中

程序如下:
#include <stdio.h>
int main()
{
FILE *fin, *fout;
char s[1024]; //假定一行不超过1024个字符
int i;
if ( (fin = fopen("f1.txt","r"))==NULL){
printf("Can not open f1.txt\n"); return 0;
}; //作为读,打开文件
fgets( s,1024,fin); //读一行
fclose(fin); //关文件
if ( (fout = fopen("f2.txt","w"))==NULL){
printf("Can not open f2.txt\n"); return 0;
}; //作为写,打开文件
for (i=0;i<strlen(s);i++){
if (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A';}; //若小写字母,则改大写,否则不变
fprintf(fout,"%s",s); //输出
fclose(fout); //关文件
printf("output in f2.txt\n");
return 0;
}

③ c语言 如何从文件中读取一行,处理过后存到另一个文件,再读下一行,在处理,再存

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
FILE *fin,*fout;
char str1[81],str2[81]; //假定每行不超过80个字符
char *infile = "in.txt";
char *outfile = "out.txt";
fin = fopen(infile,"r"); // 读格式打开,默认为文本类型
fout = fopen(outfile,"w"); // 写格式打开,默认为文本类型
if((fin == NULL) || (fout == NULL)) {
printf("打开文件失败!\n");
exit(1);
}
while(fscanf(fin,"%s",str1) == 1) {
// 在这儿处理串str1......
strcpy(str2,str1);
fprintf(fout,"%s",str2); // 写入文件
}
fclose(fin);
fclose(fout);
return 0;
}

④ C语言 如何一行行读文件

C语言中,使用fgets函数遍可以一行行读取文件。
1、fgets函数:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:从文件结构体指针stream中读取数据,每次读取一行。
说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以\0字符结束,下一次fgets调用会继续读取该行剩余的字符;
头文件:stdio.h;
返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:
#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打开输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}

⑤ C语言getchar()和gets()的用法

C语言getchar()和gets()的用法:

1、gets读一行,getchar()读一个字符。

2、函数用法:
1)gets()用于从标准输入流stdin读入一个整行(以' '或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的' '从流中取出,但不写入数组。gets()不检查被写入的数组大小。

2)getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。

拓展资料:

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。

gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。

C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

网络——C语言

热点内容
两路服务器是什么意思 发布:2024-11-28 03:39:39 浏览:936
sql精简版64 发布:2024-11-28 03:36:28 浏览:72
金立怎么加密图片 发布:2024-11-28 03:31:43 浏览:663
2017玩dnf电脑什么配置 发布:2024-11-28 03:30:56 浏览:519
ftp挂载存储ip配置 发布:2024-11-28 03:28:51 浏览:962
山耐斯空压机密码多少 发布:2024-11-28 03:26:28 浏览:404
安卓拍照摇一摇是什么软件 发布:2024-11-28 03:26:27 浏览:256
小米2s存储卡 发布:2024-11-28 03:15:49 浏览:648
弹性算法 发布:2024-11-28 02:58:40 浏览:85
python写入mysql数据库 发布:2024-11-28 02:52:56 浏览:431