当前位置:首页 » 编程语言 » 在c语言中如何把结果存放文件中
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

在c语言中如何把结果存放文件中

发布时间: 2022-08-04 07:19:26

c语言屏幕输出的内容如何保存到文件中

C语言中用流替换函数freopen可以从文件中读取数据或将数据输出到文件中。
需要引用库"stdio.h",即
#include<stdio.h>
freopen的声明如下:
FILE *freopen(const char * restrict filename, const char * restrict mode, FILE * restrict stream);
形参说明:
filename:需要重定向到的文件名或文件路径。
mode:代表文件访问权限的字符串。例如,"r"表示“只读访问”、"w"表示“只写访问”、"a"表示“追加写入”。
stream:需要被重定向的文件流。
返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。
用法:
将输入流从stdin替换成指定文件可以从文件中读取数据;
将输出流从stdout替换成指定文件可以将数据输出到文件中。
下面举个例子:
#include<stdio.h>
int main(){
freopen("in.txt","r",stdin); //从in.txt中读数据
freopen("out.txt","w",stdout);//向out.txt中写数据
int a,b;
while(~scanf("%d%d", &a, &b)){
printf("%d %d\n");
}
return 0;
}

⑵ 如何将C语言运行的结果存到TXT文本中

简单,直接用管道的方式,比如你的程序为a.exe
那么直接, ./a.exe > 1.txt 直接写就入 1.txt中了

⑶ C语言怎样将定义的函数中程序运行的结果写到文件中

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
struct student
{
char name[20];
int num;
float score;
struct student* pnext;
};
int count;

struct student* creat()
{
struct student* phead=NULL;
struct student* ptail,*p;
count=0;
ptail=p=(struct student*)malloc(sizeof(struct student));
printf("依次输入学生学号,姓名,成绩:\n");
scanf("%d%s%f",&p->num,p->name,&p->score);
while(p->num!=10)
{
count++;
if(count<=10)
{
p->pnext=phead;
ptail=p;
phead=p;
}
else{
p->pnext=NULL;
ptail->pnext=p;
ptail=p;
}
p=(struct student*)malloc(sizeof(struct student));
scanf("%d%s%f",&p->num,p->name,&p->score);
}
free(p);
return phead;
}

void print(struct student* phead)
{
struct student *ptemp;
int index=1;
printf("--这个链表中有%d个学生--\n",count);
printf("\n");
ptemp=phead;
while(ptemp!=NULL)
{
printf("学生%d是: ",index);
printf("学号%d ",ptemp->num);
printf("姓名%s ",ptemp->name);
printf("成绩%f \n",ptemp->score);
printf("\n");
ptemp=ptemp->pnext;
index++;
}}

struct student* insert(struct student* phead)
{
struct student* p;
printf("插入一个成员\n");
p=(struct student*)malloc(sizeof(struct student));

scanf("%d%s%f",&p->num,p->name,&p->score);
p->pnext=phead;
phead=p;
count++;
return phead;
}

void delet (struct student* phead,int index)//把delete改成了delet,其他没变,否则我的系统编译出错。
{
int i;
struct student* ptemp;
struct student* ppre;
ptemp=phead;
ppre=ptemp;
printf("删除第%d个学生\n",index);
for(i=1;i<index;i++)
{
ppre=ptemp;
ptemp=ptemp->pnext;
}
ppre->pnext=ptemp->pnext;
free(ptemp);
count--;
}

void file(struct student* phead)
{
FILE *fp;
if((fp=fopen("D:\\cx.txt","wb"))==NULL)
{printf("file can not open!\n"); exit(1);}
int index=1;//加上这一句
while(phead!=NULL)
{
//fwrite(phead,sizeof(struct student),1,fp);//屏蔽这一句
//加上下面这几句
fprintf(fp,"学生%d是: ",index);
fprintf(fp,"学号%d ",phead->num);
fprintf(fp,"姓名%s ",phead->name);
fprintf(fp,"成绩%f \n",phead->score);
fprintf(fp,"\n");
index++;
//ok
phead=phead->pnext; }
fclose(fp);
printf("-----成功保存信息!-----\n");

}

int main()
{
struct student* phead;
phead=creat();
phead=insert(phead);
delet(phead,2);
print(phead);
file(phead);
return 0;
}
试试看可以文本打印没?,一个小提醒:你的程序运行似乎有点小问题,自己看看吧

改成下面可能容错性会好一点,也试试:(我也初学,请见谅!)
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

typedef struct Student//这里我用了首字母大写
{
char name[20];
int num;
float score;
struct Student * pnext;//这里如果把struct Student改成student会编译出错(以前没注意)
}student;//利用typedef后面可以省力点

int count;

student * creat()
{
student * phead=NULL;
student * ptail, * p;
count=0;
ptail=p=(student *)malloc(sizeof(student));
printf("依次输入学生学号,姓名,成绩:\n");
scanf("%d%s%f",&p->num,p->name,&p->score);
while(p->num!=0)//这里我改了,容错性会好些,输入学号为0时会结束输入,
//后面程序也考虑了空记录的情况
{
count++;
if(count==1)//第一条记录为头记录
phead=p;//设置第一条记录为头记录
else
ptail->pnext=p;
ptail=p;
p=(student*)malloc(sizeof(student));
scanf("%d%s%f",&p->num,p->name,&p->score);
}
ptail->pnext=NULL;//设置尾记录指向空地址
return phead;
}

void print(student* phead)
{
student *ptemp;
ptemp=phead;
int index=1;
printf("--这个链表中有%d个学生--\n",count);
printf("\n");
if (phead!=NULL)//判断是不是为空记录
{
do
{
printf("学生%d是: ",index);
printf("学号%d ",ptemp->num);
printf("姓名%s ",ptemp->name);
printf("成绩%f \n",ptemp->score);
printf("\n");
ptemp=ptemp->pnext;
index++;
}while(ptemp!=NULL);//看看不用do...while换成while行不?有时会搞不明白的,呵呵
}
}

student* insert(student* phead)//插入函数未改动,但该函数是插到第一个之前的,可以改一下
{
student* p;
printf("插入一个成员\n");
p=(student*)malloc(sizeof(student));
scanf("%d%s%f",&p->num,p->name,&p->score);
p->pnext=phead;
phead=p;
count++;
return phead;
}

student* delet (student* phead,int index)//我把delete改成delet了否则我的编译器没法通过
{
int i;
student* ptemp;
student* ppre;
ptemp=phead;
ppre=ptemp;
printf("删除第%d个学生\n",index);
if(index>count || index<=0)//提高了容错性
printf("共有%d个记录,无法删除第%d个学生\n",count,index);
else
{
if (1==index)
{
phead=phead->pnext;
}
else
{
for(i=1;i<index;i++)
{
ppre=ptemp;
ptemp=ptemp->pnext;
}
ppre->pnext=ptemp->pnext;
}
free(ptemp);
count--;
}
return phead;
}

void file(student* phead)
{
FILE *fp;
if((fp=fopen("D:\\cx.txt","wb"))==NULL)
{printf("file can not open!\n"); exit(1);}
student *ptemp;
ptemp=phead;
int index=1;
fprintf(fp,"--这个链表中有%d个学生--\n",count);
fprintf(fp,"\n");
if (ptemp!=NULL)
{
do
{
fprintf(fp,"学生%d是: ",index);
fprintf(fp,"学号%d ",ptemp->num);
fprintf(fp,"姓名%s ",ptemp->name);
fprintf(fp,"成绩%f \n",ptemp->score);
fprintf(fp,"\n");
ptemp=ptemp->pnext;
index++;
}while(ptemp!=NULL);
}
fclose(fp);
printf("-----成功保存信息!-----\n");
}

int main()
{
student* phead;
phead=creat();
phead=insert(phead);
phead=delet(phead,2);//分别改成0,1,2,末记录,试试原来的程序这里有问题的
print(phead);
file(phead);
return 0;
}

⑷ 用C语言如何将结果输出到一个文本文件中保存

文件的操作步骤:

#include <stdio.h> #include <stdlib.h> int main()

{

FILE *fp;

int i, d;

fp=fopen("data.txt","w");

if(fp==NULL)

{

printf("File cannot open! " );

exit(0);

}

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

{

scanf("%d", &d);

fprintf(fp,"%d ", d);

}

fclose(fp);

return 0;

}

格式化输出:

#include <stdio.h> #include <stdlib.h> int main()

{

FILE *fp;

int i, No;

float salary;

fp=fopen("data.csv","w");

if(fp==NULL)

{

printf("File cannot open! " );

exit(0);

}

//输入5名员工的工号,并保存到文件中

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

{

scanf("%d %f", &No, &salary);

fprintf(fp,"%d, %.2f ", No, salary);

}

fclose(fp);

return 0;

}

(4)在c语言中如何把结果存放文件中扩展阅读:

从文件中读取字符:

#include <stdio.h> #include <stdlib.h> int main()

{

FILE *fp;

char c;

if ((fp=fopen( "data.dat" , "r" ))==NULL)

{

printf("File cannot open!");

exit(0);

}

while((c=fgetc(fp))!=EOF)

putchar(c);

fclose(fp);

return 0;

}

⑸ 怎么把c语言编的程序的结果输入到一个文本文件中

c语言编的程序的结果输入到一个文本文件中可以使用fprintf;

例:

#include<stdio.h>

main(){

FILE *fpt;

fpt = fopen("wendangming.txt","w");//打开文档,写入

fprintf(fpt,"Hello world");

fclose(fpt);

}

(5)在c语言中如何把结果存放文件中扩展阅读

它打开一个文本文件,逐个字符地读取该文件

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

}

⑹ 如何保存c语言程序计算的结果

先打开一个文件:
FILE *fphzk
fphzk=("c:\\test.txt',"rt+")

其意义是打开C驱动器磁盘的根目录下的文件test.txt。

文件使用方式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据

if((fp=fopen("c:\\test.txt","rt+")==NULL)
{
printf("\nerror on open file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的test.txt文件,则给出提示信息“error on open file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待, 只有当用户从键盘敲任一键时,程序才继续执行, 因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。

下面的程序是完成读入一个字符,然后保存在文件中。
#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("string","wt+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
ch=getchar();
while (ch!='\n')
{
fputc(ch,fp);
ch=getchar();
}
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}

⑺ c语言中怎样把数据存入文件

原因:
使用fopen时参数不正确,你是用 w参数,若文件存在则文件长度清为0,即该文件内容会消失。每次都是重新清空并写数据, 将w修改为a即可.
fopen函数说明见下方:
---------------
FILE * fopen(const char * path,const char * mode);
[编辑本段]函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
rb+ 读写打开一个二进制文件,只允许读写数据。
rt+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

⑻ C语言中,如何把一个函数的结果存放在文本文件中,并且不写在主程序内

看了你和别人的交流 直接上个代码吧

folatfun(floatx);
floata,b;
main(){
scanf("输入x",&a);
b=fun(a);
printf("x=%f",b);}
floatfun(floatx){
floatret;
FILE*fp;

if(x<-1)ret=x;
if(x>=-1)ret=x*2;
fp=fopen("result.txt","w");
fprintf(fp,"x=%f",ret);
returnret;
}

这样就是你要求的了

主函数不变 在fun中返回同时输入到文件 然后主函数正常输出

⑼ 怎么样将C语言程序执行的结果保存在一个文件里

在dos模式下,可以使用“应用程序名
=>
文本文件”回车。
例如要把一个名为test.exe的c语言可执行程序的运行结果保存下来,则可以在dos的命令提示符下:test
=>
c:\result.txt
回车,这样运行结果就保存在文本文件中了。

⑽ c语言如何用文件存储数据

具体操作步骤如下:

1、首先,创建一个新文件夹,在该文件夹中创建一个文档,如下图所示,然后进入下一步。