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語言 讀取文件內容
沒測試過,不過問題應該是fgetc這里
fgetc獲取到第一個字元,比如第一行的'#'號,然後fgets獲取到後面的字元,列印版當然就沒有權第一個字元了,解決方式要麼只用fgets,要麼把fgetc獲取的字元也列印出來
③ linux c讀取文件中特定格式的內容
用指針循環移動 判斷是不是你對應的數據 16進制的 只能這么處理
④ 用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);
}
⑤ Linux C/C++文本文件操作
你用gcc編譯器么。
⑥ Linux下C編程讀取文件中每行的數據
實話是,使用C如此操作是比較復雜的,步驟如下:
1、自我實現
首先需要將所有的文件讀專取到屬內存中,之後進行適當的處理,可以定義一個函數,函數的形參是四個三維數組,或者一個4*3的二維數組,之後的操作相當於矩陣的轉矩3 * 4。
2、藉助三方包
上面說了這其實就是一個矩陣的轉矩,那麼可以使用第三方的實現矩陣相關運算的庫文件。
⑦ linux c中讀取文件某個欄位後的值
#include<string.h>
#include<stdio.h>
int main(){
FILE *fd;
char line[1024];
fd=fopen("a.txt","r");
char *p;
char str[]="name=";
while(fgets(line,1024,fd))
{
if(p=strstr(line,str))
{
printf("%s",p+strlen(str));
break;
}
}
fclose(fd);
return 0;
}
⑧ linux/unix C讀取文件中的數字
假設該文件是文本方式
1、每次讀一行,用fgets
2、假設都是以空格分隔,用sscanf從剛才fgets讀到的字元串中取出一段
3、對其中的字元用isdigital判斷是否都為數字,如果是,就atoi轉換成數字,寫入另一個文件
這樣做就不需要操作文件指針,基本就是使用解析字元串格式的方法就可以了
⑨ LINUX C語言寫一個讀寫文件的程序,讀取的話,要把文件內容顯示出來,寫的話,就是寫進文件裡面咯
#include<stdio.h>
#include<stdlib.h>
intmain()
{
FILE*pf=fopen("a.txt","r");
if(pf==NULL){
printf("opena.txtfilefailed! ");
exit(0);
}
FILE*pf2=fopen("b.txt","w");
if(pf2==NULL){
printf("openb.txtfilefailed! ");
fclose(pf);
exit(0);
}
charch;
while(!feof(pf)){
ch=fgetc(pf);
putchar(ch);
fputc(ch,pf2);
}
fclose(pf2);
fclose(pf);
return0;
}
⑩ Linux系統下 C語言讀取文件內容,並將指定內容或某個特殊字元開始的內容,存放到字元串
1、用fgets函數可以讀取文件中某行的數據,某列數據就必須一個一個讀入每行的版第幾個字元,再存入到一權個字元串當中。2、常式: #include#includevoid main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; /