免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9504 | 回复: 6
打印 上一主题 下一主题

[函数] 文件读写,读入一行不定长数据,用什么函数? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-26 13:50 |只看该作者 |倒序浏览
文本文件,希望一次读入一行数据,每行长度不确定,用什么函数?

论坛徽章:
0
2 [报告]
发表于 2004-01-26 14:58 |只看该作者

文件读写,读入一行不定长数据,用什么函数?

可以用fgets();

论坛徽章:
0
3 [报告]
发表于 2004-01-26 15:20 |只看该作者

文件读写,读入一行不定长数据,用什么函数?

/* fgets() */
/* Read a string of characters from a stream  */
/*#include <stdio.h>; */
/* char* fgets( char* buf,size_t n,FILE* fp );  */
#include <stdio.h>;
#include <stdlib.h>;
int main( void )
{
    FILE *fp;
    char buffer[80];
    fp = fopen( "/root/fstab", "r" );
    if( fp != NULL ) {
        while( fgets( buffer, 80, fp ) != NULL ) {
            fputs( buffer, stdout );
        }
        fclose( fp );
        return EXIT_SUCCESS;
    }
    return EXIT_FAILURE;
}


从网上搜也可以发现由很多函数的手册的。

论坛徽章:
0
4 [报告]
发表于 2004-01-27 11:07 |只看该作者

文件读写,读入一行不定长数据,用什么函数?

fgets能保证读完一行数据,但是一次读入一行不能保证,如果定义的buf[]长度〈 一行的字符个数,他将分多次读取。
自己写个函数像c++那样不如重载一下fgets,或者干脆就用fgetc写一个函数

论坛徽章:
0
5 [报告]
发表于 2004-01-27 21:00 |只看该作者

文件读写,读入一行不定长数据,用什么函数?

cin.geline()

论坛徽章:
0
6 [报告]
发表于 2004-01-28 01:39 |只看该作者

文件读写,读入一行不定长数据,用什么函数?


  1. #include <stdio.h>;
  2. #include <stdlib.h>;
  3. int main( void )
  4. {
  5. FILE *fp;
  6. char buffer[80];
  7. fp = fopen( "/root/fstab", "r" );
  8. if( fp != NULL ) {
  9. while( fgets( buffer, 80, fp ) != NULL ) {
  10. fputs( buffer, stdout );
  11. }
  12. fclose( fp );
  13. return EXIT_SUCCESS;
  14. }
  15. return EXIT_FAILURE;
  16. }
复制代码


如果能够估计出所要读取文件的最长行的字节数,把上面代码中的80,改成大于那个字节数就OK了。

论坛徽章:
0
7 [报告]
发表于 2004-01-28 02:00 |只看该作者

文件读写,读入一行不定长数据,用什么函数?

char buf[1024];
memset(buf, 0, sizeof(buf));
// 对文件的操作
cin.getline(buf, 1024);
加上循环就可以将文件中的串读到buf中了,不知楼主是不是这个意思。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP