⑴ c語言如何讀寫 linux文本文件
你說的應該是FILE IO吧,建議自己學習下
http://wenku..com/view/6b921360ddccda38376bafb4.html
http://blog.csdn.net/hack_47/archive/2008/12/19/3556211.aspx
你直接搜索Linux file io就可以了
另外,Linux下有一些用於文本操作的工具,你不妨用腳本實現你的操作
祝好運
⑵ 用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);
}
⑶ C語言文件讀取問題 linux
剛按你的需求寫了個小程序,看看這個能滿足你的要求不,
遍歷一個目錄,查找不是隱藏的文件,然後輸出出來,
至於你要干什麼嘛,名都給你遍歷出來,估計你自己就會做了吧.
這個遍歷不是深度的,只遍歷你輸入的目錄的當前目錄.
編譯的話,帶gcc的環境,把這個隨便起個名
gcc
xxx.c
就行了..
運行時要加個參數
比如,生成的可執行程序是a.out
./a.out
/root/--->加的參數就是你要遍歷的路徑.
#include
<sys/types.h>
#include
<sys/stat.h>
#include
<time.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
<dirent.h>
int
main(int
argc,char
**argv)
{
struct
stat
s;
struct
stat
ss;
DIR
*dir
=
NULL;
struct
dirent
*dt
=
NULL;
if
(argc
!=
2)
{
printf("./xxx
dirpath
to
run
this
proc\n");
return
1;
}
if(lstat(argv[1],&s)
<
0)
{
printf("lstat
error\n");
return
1;
}
if(S_ISDIR(s.st_mode))
{//確定path是dir
dir
=
opendir(argv[1]);
if
(dir
==
NULL)
{
printf("open
dir
error\n");
return
1;
}
if
(chdir(argv[1])
<
0)
{//進入目錄
printf("chdir
error\n");
return
1;
}
while((dt
=
readdir(dir))
!=
NULL)
{
if(dt->d_name[0]
==
'.')
{//隱藏文件或./..目錄不進行查找
continue;
}
if(lstat(dt->d_name,
&ss)
<
0)
{
continue;
}
if
(S_ISREG(ss.st_mode))
{//列印普通文件
printf("file:%s\n",dt->d_name);
}
}
}
return
0;
}
⑷ linux下c語言 讀取文件內容
沒測試過,不過問題應該是fgetc這里
fgetc獲取到第一個字元,比如第一行的'#'號,然後fgets獲取到後面的字元,列印當然就沒有第一個字元了,解決方式要麼只用fgets,要麼把fgetc獲取的字元也列印出來
⑸ 我要用c編寫程序讀寫磁碟,在linux中磁碟為文件,怎樣用c語言獲取磁碟的文件描述符,然後對磁碟進行讀寫
linux下面的概念是一切皆文件。所以沒有像c盤d盤這樣的東西,有的只是各種各樣的文件夾和文件。要讀一個linux下面的文件很簡單,命令pwd可以得到當前路徑,然後路徑接上你打開的文件名就可以知道這個文件的詳細路徑了。直接open就可以了。
⑹ 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("不能打開文件 ");
exit(0);
}
while ((ch=getchar())!=' ')
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("不能打開文件 ");
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 地址: ");
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("讀取文件的內容如下: ");
for (i=0;i<2;i++)
{
fread(&stu,sizeof(stu),1,fp1);
printf("%s %d %7.2f %7.2f %s ",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);
}
fclose(fp1);
}
//
fprintf , fscanf, putw , getw , rewind , fseek 函數
這些函數的話我就不演示了 ,
這些函數基本都一對來使用,例如 fputc 和 fgetc 一起來用.
⑺ Linux 下C語言讀取文件問題
讀取文件 可以用 二進制模式 也可以 用 有格式文本 模式。默認 是 ASCII 文本模式。
用什麼方法打開,取決於你的文件 原來 是怎麼寫成的。
用普通 ASCII 碼 寫成的文件 可以 用 默認 方式打開。
其它文件,例如 用擴展的 ASCII 碼 寫成的文件,中文文件 都需要 用 binary 模式 打開。
⑻ linux下如何用C程序讀寫本地文件
是一樣的。如果是同目錄則直接寫文件名,如果是不同的目錄,可以寫明路徑。
如:
讀同目錄文件local.txt
fopen("local.txt","r");
讀不同目錄文件 /home/yourname/otherdir/other.txt
fopen("/home/yourname/otherdir/other.txt","r");
你可以使用pwd命令來獲得文件路徑
⑼ linux下用c語言如何調用文件
在main前面加上extern void find();
⑽ Linux C語言怎麼讀取文件指定行內容
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);
}