02功能之读写文件流操作(C语言实现读取文件指定一行)
1 C语言读取文件指定一行
// 读取文件指定一行
int ReadLine1(const char *fileName, char outBuf[], int n){
int whichLine = n; //指定要读取哪一行
int currentIndex = 1; //当前读取的行
char buf[1024] = { 0 }; //临时 不能做返回值 防止局部数组被释放后非法访问内存
FILE *file;
int isOpen = fopen_s(&file, fileName, "r");
if (isOpen != 0) {
printf("文件打开失败\n");
return -1;
}
while (!feof(file)){
if (currentIndex == whichLine){
fgets(outBuf, 1024, file); //读取一行 必须用数组
break;
}
fgets(buf, 1024, file); //临时数组读取一行,并定位到下一行
currentIndex++;
}
fclose(file);
return 0;
}
2 额外提供一个从键盘读取数据,遇到换行符停止输入,返回数组大小的函数。
// 从键盘读取 转行符停止 返回数组长度
int ReadLine2(char buffer[]) {
char character;
int i = 0;
do
{
character = getchar(); // 每次从键盘获取一个字符 包括空格
buffer[i] = character;
++i;
} while (character != '\n');
buffer[i - 1] = '\0'; // 将换行符转成标志位,表示字符串结束
return i - 1; // 返回数组长度
}
版权声明:本文为weixin_44517656原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。