2025年3月13日 星期四 甲辰(龙)年 月十二 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言读取文本文件中的每一行数据

时间:01-03来源:作者:点击数:170

下面的程序将会读取文本文件中的每一行数据,并统计该行的字符数目和单词数目;程序最后,会输出总共读取的行数。

该程序构建完成后需要在命令行工具(cmd.exe)中运行,将文件名作为命令行参数传递。

该程序涉及到main()函数传参的问题,请查看:C语言mian()函数详解

  • #include <stdio.h>
  • int main (int argc, char *argv[]){
  • FILE *fp;
  • int nchars, nwords, nlines;
  • int lastnblank; // 如果上一个字符为空格,那么该变量的值为 0
  • char c;
  • if(argc!=2){
  • printf("Usage: %s filename\n", argv[0]);
  • exit(0);
  • }
  • if((fp=fopen(argv[1],"r"))==NULL){
  • perror("fopen");
  • exit(0);
  • }
  • nchars=nwords=nlines=lastnblank=0;
  • while((c=getc(fp))!=EOF){
  • nchars++;
  • if (c=='\n'){
  • if (lastnblank)
  • nwords++;
  • printf("words=%d, characters=%d\n", nwords, nchars);
  • nchars=nwords=lastnblank=0;
  • nlines++;
  • }else{
  • if (((c==' ')||(c=='\t'))&(lastnblank))
  • nwords++;
  • lastnblank=((c!=' ')&&(c!='\t'));
  • }
  • }
  • printf("lines=%d\n", nlines);
  • fclose(fp);
  • }

在D盘创建一个文件 demo.txt,包含如下的内容:
         城东书院
         C language for China
         http://www.cdsy.xyz/
         Welcom to our website !

例如,我构建后的程序在 E:\cDemo\Debug\ 中,那么命令行输入截图如下:

注意:demo.txt 最后必须有一个空行,因为程序是以 '\n' 来判断换行的,如果最后没有空行,最后一行数据是读取不到的。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门