當前位置:首頁 » 編程語言 » c語言寫入學考成績到txt文件
擴展閱讀
怎麼清除預覽圖片的緩存 2022-11-30 14:15:11
c語言創建有序鏈表 2022-11-30 14:08:06

c語言寫入學考成績到txt文件

發布時間: 2022-11-25 03:06:21

A. c語言如何實現對txt文件的讀取和寫入

1、使用VS新建空工程,直接點擊確定,如下所示。

B. C語言數據寫入txt

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{double a,b,c;
FILE *fp;
if((fp=fopen("my.txt","wb+"))==NULL)
{printf("Create File failure");
getch();
exit(1);
}
while(___) /*你的條件*/
{
/*scanf("%lf%lf%lf",&a,&b,&c); 這是自己輸入數據*/
fprintf(("%lf%lf%lf",&a,&b,&c);
}
fclose(fp);
}
========================
把創建的txt文件放在當前目錄下是什麼意思呢,當前目錄指的是哪裡?是正在編輯的c文件所在的地方嗎?
就是你的C文件將來要生成exe文件,這個exe文件所在的目錄。調試時,就是編輯的c文件所在的地方

C. 怎麼把C語言的結果輸出為txt文件

樓主的意思是輸出你的結果把?
看我寫的
==================================================================
#include <stdio.h>
#include <math.h>

int main()
{
double x, a0,a1,f,fd;
x=1.0;
FILE *fp;//建立一個文件操作指針
fp=fopen("1.txt","w+");//以追加的方式建立或打開1.txt,默認位置在你程序的目錄下面
do
{a0=x;
f=((a0-18)*a0+95)*a0-150;
fd=(3*a0-36)*a0+95;
x=a0-f/fd;
} while(x-a0>=1.e-5);
printf("\nx=%.6f",x);
fprintf(fp,"\nx=%.6f",x);//同輸出printf一樣,以格式方式輸出到文本中
fclose(fp);//關閉流
}

D. C語言如何把結果保存在txt中

方法和詳細的操作步驟如下:

1、第一步,添加了Python文件和文本文件,可在vscode中讀取,見下圖,轉到下面的步驟。

E. 怎麼把c語言編的程序的結果輸入到一個文本文件中

c語言編的程序的結果輸入到一個文本文件中可以使用fprintf;

例:

#include<stdio.h>

main(){

FILE *fpt;

fpt = fopen("wendangming.txt","w");//打開文檔,寫入

fprintf(fpt,"Hello world");

fclose(fpt);

}

(5)c語言寫入學考成績到txt文件擴展閱讀

它打開一個文本文件,逐個字元地讀取該文件

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

fstream testByCharFile;

int num;

char c;

testByCharFile.open("6.5.cpp",ios::in);

while(!testByCharFile.eof())

{

testByCharFile >> c;

num++;

}

testByCharFile.close();

cout << num << endl;

}

F. 怎樣用C語言寫入\讀取一個TXT文件

如果預知前面的是英文後面的是中文,即可分開:

#include<stdio.h>

#define N 100

void main() { FILE *fp; char s[256],y[N][20],h[N][20]; int i,n;

if ( fp=fopen("c:\data\text.txt","r") ) {

n=0;

while ( !feof(fp) ) {

fgets(s,256,fp); sscanf("%s%s",y[n],h[n]); n++; if ( n>=N ) break;

}

fclose(fp);

printf("英文: "); for ( i=0;i<n;i++ ) printf("%s ",y[i]); printf(" ");

printf("中文: "); for ( i=0;i<n;i++ ) printf("%s ",h[i]); printf(" ");

} else printf("無法打開文件讀取。 ");

}

如果中英文順序不一定,且不會有中英文混合單詞:

#include<stdio.h>

#include<string.h>

#define N 100

void main() { FILE *fp; char s[256],y[N][20],h[N][20]; int i,n;

if ( fp=fopen("c:\data\text.txt","r") ) {

n=0;

while ( !feof(fp) ) {

fgets(s,256,fp); sscanf("%s%s",y[n],h[n]);

if ( y[n][0]<0 ) { strcpy(s,y[n]);strcpy(y[n],h[n]);strcpy(h[n],s); } //漢字字元ASCII碼小於0

n++; if ( n>=N ) break;

}

fclose(fp);

printf("英文: "); for ( i=0;i<n;i++ ) printf("%s ",y[i]); printf(" ");

printf("中文: "); for ( i=0;i<n;i++ ) printf("%s ",h[i]); printf(" ");

} else printf("無法打開文件讀取。 ");

}

G. c語言程序設計 將數據寫入指定的txt文件

1.
需要操作制定的文件,首先需要獲取文件的文件描述符(句柄):fd
=
fopen("test.txt","w")
2.
使用fprintf(),或者fputs()函數將數據格式化寫入該文本
#include
main()
{
FILE *f;
f=fopen("wenzhang.txt","w");
fprintf(f,"this is a c program !");
fclose(f);
}

H. C語言中如何吧結果輸入到txt文件中

公式有沒有錯我就不知道了

#include<stdio.h>
#include<math.h>

intmain()
{
intN,n,d,S,s,Sb,ai,S0,E0,angle,f,v;//N:組元,d:排列間距,n:子波波長,S相位角,s,激發相位差,Sb空間相位差,ai激勵振幅,S0總場強,E0能量,angle:方位角,f:子波主頻,v:速度//
doubleX,X0,pi,SS;
FILE*file;
file=fopen("1.txt","w");
pi=3.14;
printf("plessinputNandpressenter");
N=getchar();
printf("plessinputdandpressenter");
d=getchar();
printf("plessinputnandpressenter");
n=getchar();
printf("plessinputSandpressenter");
S=getchar();
printf("plessinputsandpressenter");
s=getchar();
for(angle=0;angle<=360;angle++)
{
S=2*pi*f*d*cos(angle)/v+Sb;//計算相位角//
E0=abs(sin(N/2*S)/N*sin(1/2*s));//計算能量響應//
printf("angle=%d ",angle);
printf("E0=%d ",E0);
fprintf(file,"angle=%d ",angle);
fprintf(file,"E0=%d ",E0);
}
fclose(file);//關閉文件
return0;
}

I. C語言中,把數據儲存在txt文件中的代碼怎麼寫的

1、在vscode裡面添加了Python文件和用於讀取的文本文件。

J. 利用C語言讀取含文件頭的txt文本並將學生信息和成績分別保存到數組

思路:

1、fgets每次讀取一行,根據文本格式找到姓名和分數的行字元串。

2、分別解析行字元串,獲取其中的姓名和成績(成績字元串拆解後用atof函數轉換成浮點數保存在浮點數數組中)。

3、通過malloc和realloc申請一個對應大小的結構數組(你題目要求用數組,換成鏈表更好)

4、將解析的數據保存到結構數組成員中。

注意:代碼是根據你提供的樣本格式解析的,如格式發生改變,需自行修改條件

注意:你成績之後內容沒有貼出來,所以成績內容到哪裡為結束,我只能參照姓名的個數。如成績行數比姓名行數多,多餘的會被忽略。

下面是我寫得演示代碼,已詳細備注(注意我的函數你如想單獨調用,注意free釋放內存):

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <string.h>

#define M 1000 //預估一行最大字元數,必須大於等於文本一行最大長度

#define S 5 //預讀取的成績科目數量

int slen=0;//學生人數

typedef struct student

{

char *name;//姓名

float *scores;//成績數組

}STU;

/*getaLine每調用一次讀取一行字元串(返回的是動態申請地址,如你要單獨調用該函數,記得free釋放)

函數用靜態變數記錄文件指針偏移量。參數傳非0每次調用往下行讀取,參數傳0從第一行重新讀取

讀取成功返回字元串首地址,失敗或者讀取到文件末尾返回NULL

*/

char *getaLine();

/*

getName截取名字,注意該函數只是截取,多餘字元空間沒有刪除,如單獨調用該函數自行處理地址空間。

參數傳入包含名字的那一行字元串,根據內容規則遇到第一個數字就在前一個字元置0

成功返回處理後的字元串首地址,失敗返回NULL

*/

char *getName(char *nameStr);

float *getScores(char *scoreStr);//通過字元串空格分隔格式截取各科成績,重組浮點數數組返回。異常返回NULL

STU *getNamesAndScore();

int main()

{

int i,j;

STU *stus=NULL;

stus=getNamesAndScore();

if(!stus) return 1;

for(i=0;i<slen;i++)

{

printf("姓名:%s ",stus[i].name);

for(j=0,printf("成績:");j<S;j++)

printf("%.2f ",stus[i].scores[j]);

printf(" ");

}

return 0;

}

STU *getNamesAndScore()

{

int flag=0,n=1,scnt=0;

STU *stups=NULL,*spTemp=NULL;

char *sLine=NULL;

while(1)

{

sLine=getaLine(1);

if(!sLine) break;//文件讀取到末尾或異常

if(sLine[0]=='#' && sLine[1]=='-' && sLine[2]=='-' && sLine[3]=='-'&& sLine[4]=='-'&& sLine[5]=='-')

{

flag++;

continue;

}

if(flag==2 && sLine[0]=='~' && sLine[1]=='A' && sLine[2]==' ' && sLine[3]=='C' && sLine[4]=='h'&& sLine[5]=='i')

{

continue;

}

if(flag==0) continue;

if(flag==1)//開始讀取姓名

{

if(!stups)

{

stups=(STU *)malloc(sizeof(STU));

if(!stups) return NULL;

}

else

{

n++;

spTemp=(STU *)realloc(stups,sizeof(STU)*n);

if(!spTemp) return NULL;

stups=spTemp;

}

slen++;

getName(sLine);

stups[n-1].name=(char *)malloc(sizeof(char)*(strlen(sLine)+1));

strcpy(stups[n-1].name,sLine);

free(sLine);

}

if(flag==2)//開始讀取成績

{

scnt++;

stups[scnt-1].scores=getScores(sLine);

if(!stups[scnt-1].scores)return NULL;

if(scnt==slen) break;//確保成績和姓名個數匹配,只讀對應行數的成績

}

}

return stups;

}

float *getScores(char *scoreStr)

{

int n=0;

char *p0=scoreStr,*p1=scoreStr;

float *scs=NULL;

scs=(float *)malloc(sizeof(float)*S);

if(!scs)return NULL;

while(*p1!=0)

{

if(*p1==' ')

{

*p1=0;

scs[n++]=atof(p0);

p0=p1+1;

}

p1++;

}

scs[n]=atof(p0);

return scs;

}

char *getName(char *nameStr)

{

char *p=nameStr;

if(!nameStr)return NULL;

while(*p!=0)

{

if(*p>='0' && *p<='9')

{

*(p-1)=0;

break;

}

p++;

}

return nameStr;

}

char *getaLine(int origin)

{

static long offsetSave=0;

int len=0;

char strTemp[M]={0},*rp=NULL,*sLine=NULL;

FILE *fp=NULL;

if(!origin) offsetSave=0;

fp=fopen("C:\testData.txt","r");

if(!fp) return NULL;

fseek(fp,offsetSave,SEEK_SET);

rp=fgets(strTemp,M,fp);

if(!rp)return NULL;

len=strlen(rp);

offsetSave+=len+1;

fclose(fp);

sLine=(char *)malloc(sizeof(char)*(len+1));

if(!sLine) return NULL;

strcpy(sLine,rp);

return sLine;

}