C语言读入一串字符行?
C语言中,使用fgets函数遍可以一行行读取文件。
1、fgets函数: 原型:char * fgets(char * buf, int bufsize, FILE * stream); 功能:从文件结构体指针stream中读取数据,每次读取一行。 说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以字符结束,下一次fgets调用会继续读取该行剩余的字符; 头文件:stdio.h; 返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程: #include
C语言,如何用循环读入多个文本文件?
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:
#include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; //第三行,第四列 FILE *fp = fopen("data.txt","r"); while(fgets(c,100,fp)){ //读入每行数据 i--; if(i==0) strcpy(a,c); //读到第三行数据 b[k++]=c[j-1]; //把每行的那列字符拷到b中 } b[k]=0; printf("第%d行数据:%s\n",i,a); printf("第%d列数据:%s\n",j,b); fclose(fp);}
如何用fgets函数输入多个字符串?
要使用fgets函数输入多个字符串,可以使用循环来多次调用fgets函数。下面是一个使用fgets函数连续输入多个字符串的示例代码:
```c
#include <stdio.h>
int main() {
char str[100];
int n;
printf("请输入要输入的字符串个数:");
scanf("%d", &n);
getchar(); // 把输入缓冲区中的换行符读取掉
for (int i = 1; i <= n; i++) {
printf("请输入第 %d 个字符串:", i);
fgets(str, sizeof(str), stdin);
printf("你输入的字符串是:%s", str);
}
return 0;
}
```
上述代码首先要求用户输入要输入的字符串个数,然后使用循环来多次调用fgets函数。在每次循环中,使用fgets函数读取用户输入的字符串,并将结果存储在str数组中,然后输出所读取的字符串。
需要注意的是,fgets函数会将用户输入的换行符也读取进来,因此在打印所读取的字符串之前,可能需要将最后的换行符去掉。