導航:首頁 > 文件目錄 > c語言中csv文件內容居中

c語言中csv文件內容居中

發布時間:2024-10-15 12:40:15

『壹』 C語言 給一個CSV文件(每行一個單詞) 現在用戶輸入一個單詞 返回單詞所在行 要怎麼操作

#include<stdio.h>

#include<windows.h>

void main()

{

FILE *fp;

int i=1,count=1,flag=0,j=0;

char ch[32],key[32];

printf("輸入搜索的單詞 ");

scanf("%s",key);

if((fp=fopen("yh-test.csv","rt"))==NULL)

{

printf("文件打開失敗! ");

exit(1);

}

while(!feof(fp))

{

fgets(ch,32,fp);

i=strlen(ch);

if(ch[i-1]==' ')

ch[i-1]=0;

if(strcmp(ch,key)==0)

{

printf("第%d個所在行:%d ",count,j+1);

count++;

flag=1;

}

j++;

}

if(flag==0)

printf("沒有這個單詞! ");

fclose(fp);

}

yh-test.csv這個是你想要搜索文件的名字,你可以自己改。只要保證名稱改好且那個文件在程序目錄下就好。

『貳』 用c語言讀取csv文件中的一列數據並求這些數據的平均值

#include <stdio.h>

void main()
{
int i,n=0;
float x[1000],val;
FILE *fp;

if((fp=fopen("test.csv","rt"))==NULL)
{
printf("cannot open file\n");
return;
}
while (1)
{
if(fscanf(fp,"%f,", &val) == EOF) break;
x[n]=val;
n++;
}
fclose(fp);

val=0;
for(i=0;i<n;i++)
val+=x[i];
if(n>0) val=val/n;
printf("%g\n",val);
}

『叄』 用c語言來打開csv格式內容怎麼做

csv是逗號分隔的, 其它的 都等同於純文本
所以 簡單的csv文件, 只需要按照文本方式打開
然後以逗號為分隔符 讀取每個域的內容就可以了。
可以根據內容約定, 存儲成數組或者結構體

『肆』 編寫一個C語言程序讀取一個csv格式文件的內容,文件內全是數字,每次讀取5個

csv文件即逗號分隔值文件。

逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。
純文本意味著該文件是一個字元序列,不含必須像二進制數字那樣被解讀的數據。
CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字元串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的欄位序列。
要用C語言讀取CSV,首先需要確定文件中定義的字元分隔值,以及每一行各個列的元素格式。
如果所有的元素格式相同,那麼可以每行一個一維數組,所有行組成一個二維數組,逐個元素進行讀取。
如果元素格式不同,可以按照元素類型,構建一個結構體,每行讀到一個結構體變數中,所有行組成一個結構體數組。
下面根據兩種情況,按照分隔符為逗號(,),分別舉一個例子:
文件名設定為in.csv,每行10個元素。
一、所有元素均相同類型,比如int型。
#include <stdio.h>
int main()
{
FILE*fp;
int a[100][10];//定義一個足夠大的數組來存儲。
int line = 0;
int c, i;

fp = fopen("in.csv", "r"); // 以文本方式打開。
if(fp == NULL) return -1; // 打開文件失敗。
while(1)
{
i=0;//列標記清零。
while(1)
{
fscanf(fp, "%d", &a[line][i]);//從文件中讀取一個元素。
c = getchar();//讀取下一個字元,可能是分隔符,換行符或文件結尾。
if(c == '\n'||c == EOF)break;//讀完一行,或者到文件結尾,退出讀取。
i++;
}
line ++;
if(c == EOF) break;
}

fclose(fp); //關閉文件。
//以下循環用來列印所有讀到的值。
for(i = 0; i < line; i ++)
{
for(c = 0; c < 10; c ++)
printf("%d ", a[i][c]);
printf("\n");
}
}
二、每行元素不同。
比如共三列,第一列是int型,第二列是字元串,第三列是float型。
如果分隔符不是空白字元,或者字元串元素中可能存在除分隔符外的其它空白字元,在讀取字元串的時候是不能用fscanf函數的。
定義結構體如下
strcut data
{
int a;
char s[100]; //根據實際要求,定義足夠大的字元數組。
float f;
};
讀取代碼如下:
#include <stdio.h>
int main()
{
FILE*fp;
strcut data a[100];//定義一個足夠大的結構體一維數組來存儲。
int line = 0;
int c,i;

fp = fopen("in.csv", "r"); // 以文本方式打開。
if(fp == NULL) return -1; // 打開文件失敗。
while(1)
{
fscanf(fp, "%d", &a[line].a);//從文件中讀取第一個元素。
c = getchar();//讀取分隔符。
//接下來要讀取字元串,需要逐個字元讀入,直到出現分隔符為止。
i = 0;
while(1)
{
a[line].s[i] = getchar();//讀入一個字元。
if(a[line].s[i] == ',')//發現分隔符
{
a[line].s[i]='\0'; //賦值字元串結束符。
break;//退出讀取字元串。
}
i++;
}
//由於在讀字元串的時候分隔符已經被讀取,這里不需要讀分隔符,而是直接讀下一個元素。
fscanf(fp, "%f", &a[line].f);//從文件中讀取最後一個元素。
c = getchar();//讀取下一個字元,可能是換行符或文件結尾。
line ++;
if(c == EOF) break;//到文件結尾,退出讀取。
}

fclose(fp); //關閉文件。
//以下循環用來列印所有讀到的值。
for(i = 0; i < line; i ++)
{
printf("%d %s %f\n", a[i].a, a[i].s, a[i].f);
}
}

閱讀全文

與c語言中csv文件內容居中相關的資料

熱點內容
哪裡可以上傳自己的php網站 瀏覽:373
安卓手機如何打開zx文件 瀏覽:531
app攻擊是什麼 瀏覽:888
app上有把鎖是什麼意思 瀏覽:611
如何用c語言編程五角星 瀏覽:183
thinkpadwin10一鍵恢復 瀏覽:498
excel資料庫的數據結構是樹形嗎 瀏覽:225
templatewebjs下載 瀏覽:774
note3應用程序未安裝 瀏覽:714
dos看圖工具 瀏覽:15
微信直接加為好友 瀏覽:467
可以用微信傳送的文件app 瀏覽:294
pdf文件解析亂碼 瀏覽:479
光照無關圖代碼 瀏覽:688
Linux讀寫文件前八位 瀏覽:597
word如何繪制餅狀圖 瀏覽:172
w7系統搜索文件夾 瀏覽:618
java線程變數 瀏覽:854
蘋果電腦word是只讀文件 瀏覽:691
ps5國行備份文件大小 瀏覽:754

友情鏈接