1、用fgets函數可以讀取文件中某行的數據,某列數據就必須一個一個讀入每行的第幾個字元,再存入到一個字元串當中。
2、常式:
#include<stdio.h>
#include<string.h>
voidmain()
{
chara[100],b[100],c[100];
inti=3,j=4,k=0;//第三行,第四列
FILE*fp=fopen("data.txt","r");
while(fgets(c,100,fp)){//讀入每行數據
i--;
if(i==0)strcpy(a,c);//讀到第三行數據
b[k++]=c[j-1];//把每行的那列字元拷到b中
}
b[k]=0;
printf("第%d行數據:%s ",i,a);
printf("第%d列數據:%s ",j,b);
fclose(fp);
}
B. c語言如何讀寫 linux文本文件
Linux下C語言的文件(fputc,fgetc,fwrite,fread對文件讀寫操作)
//
fputc 向文件寫入字元
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("不能打開文件\n");
exit(0);
}
while ((ch=getchar())!='\n')
fputc( ch, fp );
fclose(fp);
}
-------------
小提示:
fp=fopen("test.txt","w") ,把"w"改為 "a" 可以創建文件並且追加寫入內容
exit(0); 需要包含 stdlib.h 頭文件,才能使用
//
fgetc 讀取字元
#include <stdio.h>
#include <stdlib.h>
main( int argc, char *argv[] )
{
char ch;
FILE *fp;
int i;
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("不能打開文件\n");
exit(0);
}
while ((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
}
文件結尾,通過判斷 EOF
//
fwrite 的使用
使數組或結構體等類型可以進行一次性讀寫
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","wb"))==NULL)
{
printf("不能打開文件");
exit(0);
}
printf("請輸入信息,姓名 年齡 分數1 分數2 地址:\n");
for( i=0;i<2;i++)
{
scanf("%s %d %f %f %s",stu.name,&stu.age,&stu.score[0],&stu.score[1], stu.addr);
fwrite(&stu,sizeof(stu),1,fp1);
}
fclose(fp1);
}
//
fread 的使用
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","rb"))==NULL)
{
printf("不能打開文件");
exit(0);
}
printf("讀取文件的內容如下:\n");
for (i=0;i<2;i++)
{
fread(&stu,sizeof(stu),1,fp1);
printf("%s %d %7.2f %7.2f %s\n",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);
}
fclose(fp1);
}
//
fprintf , fscanf, putw , getw , rewind , fseek 函數
這些函數的話我就不演示了 ,
這些函數基本都一對來使用,例如 fputc 和 fgetc 一起來用.
C. linux鎬庝箞榪愯宑鏂囦歡
linux鎬庝箞榪愯宑鏂囦歡鍛錛屼笅闈㈠氨璁╂垜浠鏉ョ湅鐪嬪惂銆
1銆佸畨瑁単cc g++緙栬瘧宸ュ叿銆
2銆佸壋寤轟竴涓鍚庣紑鍚嶄負.c鐨勬枃浠躲
3銆佹墦寮鏂囦歡錛屽噯澶囩紪杈戜唬鐮乿im c.c.
4銆佺紪鍐欎竴涓綆鍗曠殑浠g爜錛屽寘鍚澶存枃浠跺拰main鍑芥暟銆
5銆佸湪緇堢紿楀彛涓杈撳叆gcc c.c -o test緙栬瘧浠g爜銆
6銆佽緭鍏./test鍛戒護鍥炶濺鍗沖彲銆
D. 如何用C語言在linux上統計文件行數
統計行數可以通過統計換行符 來實現。不過需要注意的是,有些文件最後一行並不存在換行符,所以代碼中需要對此作處理。
可以在達到文件結尾後,判斷前一個字元,如果不是換行符,那麼應補加最後一行統計。
代碼如下:
假定輸入文件為in.txt,該文件存在且可讀。
#include<stdio.h>
intmain()
{
FILE*fp=NULL;//文件指針。
intc,lc=0;//c為文件當前字元,lc為上一個字元,供結尾判斷用。
intline=0;//行數統計
fp=fopen("in.txt","r");//以只讀方式打開文件。
while((c=fgetc(fp))!=EOF)//逐個讀入字元直到文件結尾
{
if(c==' ')line++;//統計行數。
lc=c;//保存上一字元。
}
fclose(fp);//關閉文件
if(lc!=' ')line++;//處理末行
printf("文件共有%d行。 ",line);
return0;
}
樣例輸入輸出:
如in.txt有如下內容:
testline1
testline2
則會輸出:
文件共有2行。
E. linux鎵ц宑鏂囦歡linux鎵ц宑鏂囦歡
linux鎬庝箞榪愯宑璇璦浠g爜錛
鍦╨inux涓嬭繍琛孋璇璦浠g爜鏄姣旇緝綆鍗曠殑浜嬫儏銆侰璇璦浠g爜涓嶈兘鐩存帴榪愯岀殑錛屼綘棣栧厛蹇呴』緙栬瘧閾炬帴錛屼箣鍚庣敓鎴愪竴涓鍙鎵ц岀殑鏂囦歡錛屽啀榪愯岃繖涓鏂囦歡銆
瑕佺紪璇慍璇璦鐨勪唬鐮侊紝鍦ㄥ懡浠よ岃緭鍏ョ紪璇戞寚浠ら摼鎺ワ紝浣犺佺敤鍒扮殑搴撴枃浠舵垨鑰呬竴浜涘弬鏁幫紝榪欐牱榪愯屽畬涔嬪悗灝辮嚜鍔ㄧ敓鎴愬彲鎵ц屾枃浠朵簡銆
linux緇堢涓嬪備綍榪涜孋璇璦緙栬瘧錛
1銆佽繘鍏linux緋葷粺錛屽壋寤篊鏂囦歡鈥渧imtest.c鈥濆悓鏃惰繘鍏vim緙栬緫鐣岄潰錛屼篃鍙浠ュ埄鐢ㄦ寚浠も渢ouchtest.c鈥濆壋寤哄悗錛岀劧鍚庘渧imtest.c鈥濊繘鍏vim緙栬緫鐣岄潰銆
2銆乿im緙栬緫鐣岄潰錛岀敱鈥淓SC鈥濆緩鏉ュ垏鎹涓夌嶆ā寮忥紝涓鑸妯″紡錛氬湪Linux緇堢涓杈撳叆鈥渧im鏂囦歡鍚嶁濆氨榪涘叆浜嗕竴鑸妯″紡,浣嗕笉鑳借緭鍏ユ枃瀛椼傜紪杈戞ā寮忥細鍦ㄤ竴鑸妯″紡涓嬫寜i灝變細榪涘叆緙栬緫妯″紡錛屾ゆ椂灝卞彲浠ュ啓紼嬪簭錛屾寜Esc鍙鍥炲埌涓鑸妯″紡銆
3銆侀氳繃杈撳叆搴曢儴鎸囦護鈥滐細setnu鈥濇樉紺鴻屾暟銆
4銆佽緭鍏ュ畬C浠g爜鍚庯紝璁板緱鈥淓SC鈥濋敭鍒囨崲錛岃緭鍏モ滐細wq鈥濅繚瀛橀鍑恆
5銆佹寚浠も渓s鈥濇樉紺哄綋鍓嶇洰褰曚笅鏂囦歡錛屾垜浠鍙浠ヨ佸埌瀛樺湪鐨凜鏂囦歡緙栬瘧鈥済cc-otesttest.c鈥濓紝緙栬瘧鎴愬姛鍚庯紝榪愯屸./test鈥濄
涓轟粈涔坙inux榪愯宑璇璦鏂囦歡浼氭姤鏉冮檺涓嶅燂紵
淇鏀規潈闄愬彲浠ヨВ鍐寵ラ棶棰樸
鍙浠ヤ嬌鐢╟hmod鍛戒護淇鏀規潈闄愩
璇娉曪細chmodmodefile...
璇存槑:Linux/Unix鐨勬。妗堣皟鐢ㄦ潈闄愬垎涓轟笁綰:妗f堟嫢鏈夎呫佺兢緇勩佸叾浠栥傚埄鐢╟hmod鍙浠ヨ棄浠ユ帶鍒舵。妗堝備綍琚浠栦漢鎵璋冪敤銆
鍙傛暟:
mode:鏉冮檺璁懼畾瀛椾覆錛屾牸寮忓備笅:...]錛屽叾涓
u琛ㄧず璇ユ。妗堢殑鎷ユ湁鑰咃紝g琛ㄧず涓庤ユ。妗堢殑鎷ユ湁鑰呭睘浜庡悓涓涓緹や綋(group)鑰咃紝o琛ㄧず鍏朵粬浠ュ栫殑浜猴紝a琛ㄧず榪欎笁鑰呯殕鏄銆
+琛ㄧず澧炲姞鏉冮檺銆-琛ㄧず鍙栨秷鏉冮檺銆=琛ㄧず鍞涓璁懼畾鏉冮檺銆
r琛ㄧず鍙璇誨彇錛寃琛ㄧず鍙鍐欏叆錛寈琛ㄧず鍙鎵ц岋紝X琛ㄧず鍙鏈夊綋璇ユ。妗堟槸涓瀛愮洰褰曟垨鑰呰ユ。妗堝凡緇忚璁懼畾榪囦負鍙鎵ц屻
-c:鑻ヨユ。妗堟潈闄愮『瀹炲凡緇忔洿鏀癸紝鎵嶆樉紺哄叾鏇存敼鍔ㄤ綔
-f:鑻ヨユ。妗堟潈闄愭棤娉曡鏇存敼涔熶笉瑕佹樉紺洪敊璇璁鎮
-v:鏄劇ず鏉冮檺鍙樻洿鐨勮︾粏璧勬枡
-R:瀵圭洰鍓嶇洰褰曚笅鐨勬墍鏈夋。妗堜笌瀛愮洰褰曡繘琛岀浉鍚岀殑鏉冮檺鍙樻洿(鍗充互閫掑洖鐨勬柟寮忛愪釜鍙樻洿)
--help:鏄劇ず杈呭姪璇存槑
--version:鏄劇ず鐗堟湰
linux鎬庝箞緙栬瘧c鐨勬簮紼嬪簭鐨勶紵gcc錛岀紪璇戝懡浠ゆ槸浠涔堬紵
緙栬瘧鏂規硶錛氭牸寮廹cc甯哥敤鐨勯夐」鏈綆鍗曠殑鏄:gcchello.c榛樿ょ殑鎯呭喌涓嬪皢鐢熸垚a.out鐨勫彲鎵ц屾ф枃浠訛紝鍙闇瑕佸湪緇堢涓婅緭鍏./a.out灝卞彲浠ョ湅鍒版墽琛岀殑緇撴灉錛屽傛灉浣犳兂鎸囧畾鐢熸垚鐩鏍囨枃浠剁殑鍚嶅瓧閭d箞浣犲彲浠ュ姞涓-o閫夐」,鍛戒護濡備笅:gcc-ohellohello.
c鍛戒護錛歡cc-chellohello.c鎵╁睍璧勬枡錛歡cc鍛戒護鐨勫熀鏈鐢ㄦ硶gcc鍏朵腑錛宖ilenames涓烘枃浠跺悕錛沷ptions涓虹紪璇戦夐」銆
褰撲笉浣跨敤浠諱綍緙栬瘧閫夐」緙栬瘧hello.c鏃訛紝gcc灝嗕細鑷鍔ㄧ紪璇戜駭鐢熶竴涓猘.out鐨勫彲鎵ц屾枃浠訛細#lshello.c#gcchello.c#lsa.outhello.c鎵ц岋細#./a.outHello,World!浣跨敤-o緙栬瘧閫夋嫨錛屽彲浠ヤ負緙栬瘧鍚庣殑鏂囦歡鎸囧畾涓涓鍚嶅瓧錛#lsa.outhello.c#gcchello.c-ohello#lsa.outhellohello.c鎵ц岋細#./helloHello,World!娉ㄦ剰錛氫嬌鐢-o閫夐」鏃訛紝-o鍚庨潰蹇呴』璺熶竴涓鏂囦歡鍚嶏紝鍗籌細-ooutfile銆備負浜嗕究浜庢弿榪板悗闈㈢殑閫夐」錛屽垹闄hello鍜宎.out鍙鎵ц屾枃浠躲
F. 用linux下的c語言讀取txt文件中的列數據
1.用fgets函數可以讀取文件中某行的數據,某列數據就必須一個一個讀入每行的第回幾個字元,再存入到一答個字元串當中。
2.常式:
#include<stdio.h>
#include<string.h>
voidmain()
{
chara[100],b[100],c[100];
inti=3,j=4,k=0;//第三行,第四列
FILE*fp=fopen("data.txt","r");
while(fgets(c,100,fp)){//讀入每行數據
i--;
if(i==0)strcpy(a,c);//讀到第三行數據
b[k++]=c[j-1];//把每行的那列字元拷到b中
}
b[k]=0;
printf("第%d行數據:%s ",i,a);
printf("第%d列數據:%s ",j,b);
fclose(fp);
}