linuxc讀寫文件
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的文件
Linux把外部設備也當成文件來管理,這是繼承了Unix一切皆文件的設計思想。
/dev目錄下的文件皆外部設備,所以你必須有相應的內核模塊來驅動相應的設備,否則此設備無法讀寫。
你是在測試COM口么?COM口有沒有連接測試設備?沒有的話,就算有相應的內核模塊也是白搭的,就象光有電燈開關,沒安裝燈泡,你怎麼按開關都白搭。
❸ linux下如何用C程序讀寫本地文件
是一樣的。如果是同目錄則直接寫文件名,如果是不同的目錄,可以寫明路徑。
如:
讀同目錄文件local.txt
fopen("local.txt","r");
讀不同目錄文件 /home/yourname/otherdir/other.txt
fopen("/home/yourname/otherdir/other.txt","r");
你可以使用pwd命令來獲得文件路徑
❹ 我要用c編寫程序讀寫磁碟,在linux中磁碟為文件,怎樣用c語言獲取磁碟的文件描述符,然後對磁碟進行讀寫
linux下面的概念是一切皆文件。所以沒有像c盤d盤這樣的東西,有的只是各種各樣的文件夾和文件。要讀一個linux下面的文件很簡單,命令pwd可以得到當前路徑,然後路徑接上你打開的文件名就可以知道這個文件的詳細路徑了。直接open就可以了。
❺ 關於linux C的文件讀寫
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1024
void lower1(char *p)
{
int i,len;
len = strlen(p);
for(i=0;i<len;i++)
if(p[i] >= 'A' && p[i] <= 'Z')
p[i] += 32;
}
int main(void)
{
FILE *fp,*fpw;
char *p;
char buf[MAX],buf1[MAX]="GAME OVER";
int n,m;
fp = fopen("txt","rw");
if(fp == NULL)
{
perror("Fail to open");
exit(1);
}
while((n = fread(buf,sizeof(char),MAX-1,fp)) > 0)
{
buf[n]='\0';
lower1(buf);
printf("%s",buf);
printf("%d",n);
}
rewind(fp);
while((n = fread(buf,sizeof(char),MAX-1,fp)) > 0) //你這里什麼意思?你這里有問題
{
fputs(buf,fp);
}
if(n < 0){
perror("Fail to read");
exit(1);
}
fclose(fp);
return 0;
}
順便,看樣子你也知道,讀寫無法同時進行的,所以,你讀萬,一定要rewind一下
❻ Linux c 寫文件
這個問題其實是很復雜的。
C語言的字元集包含兩個,一個是源碼所處在的環境的字元集,一個是運行時環境的字元集。
我光是知道Java如何指定,但卻不知道C語言程序輸出的是什麼,除非蒙上,否則這是行不通的。試試使用gcc中的-finput-charset和-fexec-charset開關來指定字元集,確保輸入輸出一致
❼ linux系統下,文件存儲與數據讀寫問題(C語言)。
int writeFile(char *path,char *buf)
{
FILE *file;
file = fopen(path,"a");
if (file == NULL)
{
return -1;
}
fwrite(buf,strlen(buf),1,file);
if (file)
fclose(file);
return 0;
}
❽ 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);
}
❿ linux下c語言 讀取文件內容
沒測試過,不過問題應該是fgetc這里
fgetc獲取到第一個字元,比如第一行的'#'號,然後fgets獲取到後面的字元,列印當然就沒有第一個字元了,解決方式要麼只用fgets,要麼把fgetc獲取的字元也列印出來