① 用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語言讀取txt文件多行數據
二維數組只能存放相同數據類型.
你這個明顯是兩個域的, 所以 前面讀到一個字元中, 後面讀到一個二維數組中比較好.
比如 可以這樣
chars1[100];
chars2[100][10];
inti=0;
while(!feof(fp))
{
s1[i]=fgetc(fp);
fscanf(fp,"%s",s2[i]);
fgetc(fp);
i++;
}
③ c語言不換行連續讀取數據
在C語言中,如果你想連續讀取多個數據而不換行,可以使用標准庫函數「scanf」。
例如,如果你想讀取三個整數,可以使用如下代碼:
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("a = %d, b = %d, c = %d\n", a, b, c);
return 0;
}
在這個程序中,「scanf」函數會讀取三個整宴畝數,並將它們分別賦值給變數「a」、「b」和「c」。
注意,「scanf」函數的格式字元串「%d%d%d」中的御旁「%d」表示讀取一個整數,因此「scanf」函數會讀取三個整數。
如果你想讀取不同類型的數據,可以使用相應的格式字元串。例如,如果你想讀取一鎮祥橡個整數和一個浮點數,可以使用「%d%f」作為格式字元串。
希望這些信息對你有幫助。
④ 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語言檢查txt文件有多少行
1 以讀的方式打開文件;
2 循環讀取文件,遇到 累加;
3 遇到EOF退出,並累加EOF所在行;
4 輸出行數。
代碼如下:
intmain()
{
intc,l=0;
FILE*fp=fopen("in.txt","r");
while((c=fgetc(fp))!=EOF)if(c==' ')l++;
l++;
printf("%d ",l);
}
⑥ 用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;
}