當前位置:首頁 » 編程語言 » c語言文件行數

c語言文件行數

發布時間: 2022-10-28 20:43:50

① 請編寫程序統計一個.cpp文件的行數(c語言

#include"stdio.h"
#include"string.h"
int main()
{ int i,j,n=0;
char s[200];
FILE*fp;
fp=fopen("0.cpp","r");
while(!feof(fp))
{fgets(s,200,fp);
// printf("%s",s);
for(i=0;s[i]==' ';i++);
if(s[i]=='/'&&s[i+1]==' ')continue;
if(s[i]=='('&&s[i+1]==')')continue;
if(strlen(s)==1)continue;
n++;
}
printf("%d\n",n);
fclose(fp);
return 0;
}

② 在c語言中怎樣得到一個文本文件的行數

循環獲取每個字元
統計\n的字數
注意的是,如果最後一個換行之後,到EOF前,還有字元,那麼需要多加一行。

③ C語言中如何讀取文件里的行數

#include<stdio.h>int main(){ char temp[255]; int i=0; FILE *fp=NULL; if((fp=fopen("file.txt","r"))==NULL) { printf("打開失敗!\n"); return 1; } while(fscanf(fp,"%s",temp)) i++; printf("文件行數為:%d\n",i); return 0;}

④ 用C語言讀出文件行數

#include<stdio.h>

inthangshu(charfile[])//輸入工程目錄下的文件名,或者其他目錄下絕對路徑名例如:c:\1.txt;

{

charc;

inth=0;

FILE*fp;

fp=fopen(file,"r");

if(fp==NULL)

return-1;//表示文件打開錯誤

while((c=fgetc(fp))!=EOF)

{

if(c==' ')

h++;

else

{

c=fgetc(fp);//這是處理最後一行可能沒有換行標志,但是確文件結束。

if(c==EOF)

{

h++;

break;

}

}

}

returnh;

}

intmain()

{

inths=hangshu("c:\1.txt");//這里說明你要打開的文件。這個是c盤根目錄下文件

inthst=hangshu("1.txt");//工程目錄下的文件。

printf("行數:%d ",hs);

printf("行數:%d ",hs);

}

如上是用c編寫的,不是c++.

運行的時候可以把中文注釋去掉。

完全可以運行的,我已經測試過了。

⑤ c語言 計算文件源代碼的行數

是計算文本有多少行。if ( fgetc ( pScriptFile ) == '\n' )說明一切

⑥ 用c語言怎麼讀取txt文件中的行數

讀取文件行數, 可以逐個字元讀取文件,到文件尾,統計 的個數

參考代碼如下

#include<stdio.h>
intmain()
{
intc;
FILE*fp;
intlines=0;
fp=fopen("in.txt","rb");
if(fp)
{
while((c=fgetc(fp))!=EOF)
if(c==' ')lines++;
printf("%d ",lines);
fclose(fp);
}
return0;
}

也可以通過fgets函數,每次讀取一行,到文件尾,然後計算讀取的次數

#include<stdio.h>
#include<string.h>
intmain()
{
chars[100];
FILE*fp;
intlines=0;
fp=fopen("in.txt","r");
if(fp)
{
while((fgets(s,100,fp))!=NULL)
if(s[strlen(s)-1]==' ')lines++;
printf("%d ",lines);
fclose(fp);
}
return0;
}

⑦ C語言中如何讀取文件里的行數

正常情況不用重新打開。。
請問是如何讀取文本的行數的??
rewind(fp);
可以將指針回到起始位置。。
------------------------------
infile不用換名字啊,但是你那個寫了有點問題,
ifstream
infile(file,ios::binary);其實不能叫打開文件
打開文件是
infile.open(*****);
---------
假設就是要你那樣寫,那就換個名字,
這樣寫
ifstream
infile(file,ios::binary);
*******
infile.close();
ifstream
infile2(file,ios::binary);
//重新打開
-----------------------------
還有一個問題,為何一定要知道行數呢??
就算要知道行數,你是如何讀取文件統計\n的?
難道用的是fgetc,判斷當前字元??
--------------
明顯效率太低了。。
完全可以讀取一行啊
使用getline
例如
ifstream
infile(file,ios::binary);
string
str;
while(getline(infile,str))
{
//對str操作,就是當前行
}

⑧ c語言問題(想要讀取文件的行數)

代碼中有兩個問題:
(1)while(){}語法問題。
while(條件)/////這後面不能加分號,加分號後將做空循環,循環里不會執行循環體的代碼
{
循環體;
}
把while()後面的分號";"去掉就好。
(2)while裡面的條件(c=fgetc(fp) !=EOF) 有問題。按照C語言運算符的優先順序將按以下順序執行這個while循環裡面的語句:
1) 讀取文件: fgetc(fp)
2) 將讀取文件的結果與EOF比較: fgetc(fp) !=EOF
3) 將比較的結果賦值給c,就是說c每次得到的不是true(1)就是false(0),根本不是你想要的結果
這個表達式其實是:while (c = (fgetc(fp) != EOF) )
正確的寫法是:while ( (c = fgetc(fp)) != EOF)

所以最後的代碼修改如下:
#include<stdio.h>
main()
{
FILE *fp;
char name[100],c;
int i;
int count = 0;//計算文件中字元個數,從而判斷是否為空文件
i=0;//這邊為什麼初始化為1?如果輸入的是空文件那麼應該就是0行

printf("enter filename:");
gets(name);

fp=fopen( name ,"r");
if (fp != NULL)
while ( (c=fgetc(fp)) != EOF )
{
count ++;
if(c == '\n')
i++;
}

if(i == 0 && count > 0) i ++; //如果沒有'\n'但是文件非空,那麼該文件只有一行

printf("number of numbers:%d\n",i);
}

當然,僅僅判斷'\n'並不保險,並不是所有系統下面的換行都有'\n',比如dos系統是"\r\n", linux系統一般用'\n',蘋果系統用的是'\r',如果是蘋果系統這種做法就失效了。

⑨ C語言獲取某特徵字元所在文件行數

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

void main()
{
FILE *fp;
char *str="bbb";
char s[81];
int i=1;
if((fp=fopen("1.txt","r"))==NULL)
{
printf("file open error!\n");
exit(1);
}
fgets(s,81,fp);
while(!feof(fp))
{
if(strstr(s,str))
printf("%d\n",i);
fgets(s,81,fp);
i++;
}
fclose(fp);
}

熱點內容
config連接資料庫 發布:2025-07-13 19:02:24 瀏覽:950
bt文件解壓 發布:2025-07-13 19:02:16 瀏覽:744
比較便宜的雲伺服器 發布:2025-07-13 18:29:59 瀏覽:406
切換ftp 發布:2025-07-13 18:29:07 瀏覽:738
銳龍哪個配置最高畫質 發布:2025-07-13 18:22:34 瀏覽:196
壓縮機工作原理圖 發布:2025-07-13 18:10:15 瀏覽:39
黑暗追求者安卓怎麼聯機 發布:2025-07-13 18:10:07 瀏覽:617
北大保安自學編程 發布:2025-07-13 18:09:58 瀏覽:858
java遞歸排列 發布:2025-07-13 18:02:43 瀏覽:473
輕量雲伺服器如何換成d盤 發布:2025-07-13 17:58:45 瀏覽:931