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;
}