c语言打印到记事本的函数 c语言简易记事本-成都快上网建站

c语言打印到记事本的函数 c语言简易记事本

请问C语言的结果如何将其运行结果输出到文本文件,请高手写出详细的解答过程,高分奖赏!!!

你说的这个用到文件操作就可以了,,

创新互联公司是一家专注于成都网站制作、成都网站设计与策划设计,铅山网站建设哪家好?创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:铅山等地区。铅山做网站价格咨询:18982081108

主要用到格式化输出函数fprintf()

格式:fprintf(文件指针名,格式段,数据项)

例:

#includestdio.h

void main()

{

FILE *fp;

fp=fopen("F:\\file.txt","w"); /*文件写打开*/

printf("%d",1+3);/* 黑认情况下输出到标准屏幕文件stdout,原来是fprintf(stdout,"%d",1+3),后简化*/

fprintf(fp,"%d",1+3); /*到这句只要把屏幕当作一个文件看待,这里fprintf()就好理解了,就是把数据放到一个文件fp上,而不是屏幕文件stdout*/

fclose(fp);/*文件关闭*/

}

请问能如何把c语言运行的结果输出到一个记事本里

可以执行写文件操作。

如以下代码:

#include stdio.h

main()

{

char str[10]={0};

FILE *fp=fopen("test.txt","w");

gets(str);

fputs(str,fp);

}

这样就会把你输入的存入test.txt文件了。

C语言怎样将文本文件中的内容读取打印

可以参考下面的代码:

#includestdio.h

#define F_PATH "d:\\myfile\\file.dat"

char c;

int main(){

FILE*fp=NULL;//需要注意

fp=fopen(F_PATH,"r");

if(NULL==fp) return -1;//要返回错误代码

while(fscanf(fp,"%c",c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来

fclose(fp);

fp=NULL;//需要指向空,否则会指向原打开文件地址 

return 0;

}

扩展资料:

fopen函数是打开一个文件,其调用的一般形式为:

文件指针名=fopen(文件名,使用文件方式);

“文件指针名”必须是被声明为FILE 类型的指针变量;

“文件名”是被打开文件的文件名;

“使用文件方式”是指文件的类型和操作要求;

“文件名”是C风格字符串。

使用文件的方式共有12种,部分的意义如下:

"r" = "rt"

打开一个文本文件,文件必须存在,只允许读

"rb"

打开一个二进制文件,文件必须存在,只允许读

参考资料来源:百度百科-c语言fopen函数

如何用c语言做记事本

#includestdio.h

#includemalloc.h

#includestring.h

#includestdlib.h

#includectype.h

#define NULL 0

#define MAX 100

typedef struct lnode{

char date[MAX]; //存放数据

struct lnode * prior ; //前驱

struct lnode * next ; //后继

int number ; //记录一个节点的字符数!如果是头节点就记录他的节点个数

int quese ; //记录节点在链表中的位置

}lnodetype;

lnodetype * l ; //设置两个全局变量,分别是头节点指针和尾节点指针

lnodetype * end ;

//**********这个函数是用来初始化的**********//

int iniatelist (lnodetype ** l , lnodetype ** end)

{

(*l) = (lnodetype *)malloc (sizeof (lnodetype) ) ;

if ( (*l) == NULL )

{

printf ("没有只够的内存空间!程序即将退出!");

return 0 ;

}

(*l)-prior =(*l)-next = NULL ; //这是双链表

(*l)-number = (*l)-quese = 0;

(*end) = (*l) ;

printf ("程序初始化完毕!");

return 0;

}

//**********这个函数是用来建立节点,并且插入元素的**********//

int link(lnodetype ** l, lnodetype ** end)

{

lnodetype *s ;

s = (lnodetype *)malloc ( sizeof (lnodetype) ) ;

if ( s == NULL ){

printf ("内存空间不够,程序即将退出!") ;

return 0 ;

}

(*end)-next = s ;

s-prior = (*end) ;

(*end) = (*end)-next ;

(*l)-number++ ; //增加一个节点,头节点的number就加1

s-quese = (*l)-number ; //这个是记录节点在链表中的位置

printf ("%d行", s-quese ) ; //这个是节点在整个链表中的位置

gets(s-date) ;

s - number = strlen(s-date) ;

return 0 ;

}

//**********这个是打印链表的函数**********//

int prin (lnodetype ** l, lnodetype ** end)

{

lnodetype * p ;

int i ;

int j = 0;

int couter = (*l)-number ;

p = (*l)-next ;

for (i=0; i couter; i++){

printf ( "%d行" , i+1 ) ;

j = 0;

while ( ( p-date[j]='a' p-date[j]='z') ||

(p-date[j]='A' p-date[j]='z') ||

p-date[j]='0' p-date[j]='9')

{

printf ( "%c" , p-date[j] ) ;

j++ ;

}

printf ("n") ;

p = p-next ;

}

return 0 ;

}

//*********这个查找和编辑相应行的函数**********//

int search (lnodetype ** l, lnodetype ** end )

{

int number ;

scanf ("%d" , number) ;

int i ;

lnodetype * p ;

p = (*l)-next ;

for ( i=0; inumber-1; i++ )

p = p-next ;

printf ("%d行" , number ) ;

gets (p-date) ;

return 0 ;

}

//**********这个是在文本文件里搜索字符串的函数**********//

int searchstr(lnodetype ** l , lnodetype ** end)

{

char ptr[100] ;

int arrycouter ;

int mystrcmp( char *, char * , int ) ;

printf ( "ok!现在输入你查找的字符串!" ) ;

scanf ( "%s" , ptr ) ;

arrycouter = strlen (ptr) ;

lnodetype * s ;

s = (*l)-next ;

char * p ;

int i = 1 ;

int couter = 0 ;

int number = (*l)-number ;

p = (char *)s-date ;

while ( i number ){

// i=1是,证明没有找到,向第二个节点继续寻找

while ( i ( ( (*p = 'a') (*p = 'z') ) || ( (*p = 'A') (*p = 'Z') ) ) ){

i = mystrcmp ( p , ptr , arrycouter );

if ( i == 1 ){

printf ("字符串已经在第%d行,第%d个字符开始,",s-quese, couter+1 );

i = 0 ;

}

else

{

p++ ;

couter++;

i = 1 ;

}

}

s = s-next ;

p = (char *)s-date ;

number -- ;

}

if ( i == 1 )

printf ("字符串在本文档中不存在!");

return 0 ;

}

//**********(1)这个函数是用来实现退出不保存功能的**********//

int exitunsave(lnodetype ** l, lnodetype ** end)

{

lnodetype * s ;

while( (*l) != (*end) ){ //如果不保存的话,最好是把节点的空间都释放,节省空间

s = (*end) ;

(*end) = (*end)-prior ;

free( s ) ;

}

return 0 ;

}

//**********(2)这个函数是用来实现退出但保存功能的**********//

int quitandsave( lnodetype ** l , lnodetype ** end )

{

FILE * fp ;

char ch ;

char filename[20] ;

lnodetype * p;

int i ;

int j ;

int couter = (*l)-number ;

p = (*l)-next ;

printf ("请输入文件名:") ;

scanf ("%s" , filename ) ;

if ( (fp = fopen( filename , "w" )) == NULL ){

printf ("文件不能打开!n");

return 0 ;

}

for ( i=0; icouter; i++ ){ //有几个节点就进行多少次的存贮

ch = p-date[0] ;

j = 1 ;

while (ch != '\0'){

fputc (ch , fp) ;

ch = p-date[j] ;

j++ ;

}

p = p-next ;

fputc ( '#' , fp ) ; //注意在每个节点的后面加上结束的符号

}

fputc ( '@' , fp ) ; //整个文件关闭的标志

fclose ( fp ) ; //注意关闭文件,

return 0 ;

}

//**********由于库函数比较字符串提供的功能不满足要求,故自己写了一个**********/

int mystrcmp( char * p ,char * sour ,int number )

{

while ( number (*p) == (*sour)

( ( (*p = 'a') (*p = 'z') ) || ( (*p = 'A') (*p = 'Z') ) )){

p++ ;

sour++ ;

number-- ;

}

if ( number == 0 )

return 1 ;

else

return 0 ;

}

//**********这个函数是用来实现统计字符串功能的**********//

int coutword(lnodetype ** l , lnodetype ** end)

{ //考虑到只统计一行的单词没有意义,故统计整个文本

int yes = 1 ; //这个是进入单词的标志

int no = 0 ; //在单词外面的时候的标志

int i , j ,inaword ,count = 0 ;

inaword = no ;

lnodetype * s = (*l)-next ;

for (j=0; j(*l)-number; j++){

for ( i=0; (s-date[i]='a' s-date[i]='z') ||

(s-date[i]='A' s-date[i]='z') ||

(s-date[i]='0' s-date[i]='9' ) ||

(s-date[i]==' '); i++ )

{

if ( s-date[i] == ' ' )

inaword = no ;

else

if ( inaword == no )

{

inaword = yes ;

count++ ; //计算单词

}

}

s = s-next ;

inaword = 0 ; //注意这里,把标志置为0了!

}

printf ( "n文本一共有 %d 行" , (*l)-number ) ;

printf ("n此文本一共有 %d 个单词!" , count ) ;

return count ;

}

//**********这个函数是用来实现计算文本行数功能的**********//

int linecouter(lnodetype ** l , lnodetype ** end )

{

int couter ;

couter = (*l)-number ;

return couter ;

}

//**********这个函数是整和一上所有功能的菜单函数**********//

int editmenu(lnodetype ** l , lnodetype ** end )

{

char choice ;

char * p = "cls" ;

int i = 1 ; //这两个变量是用来控制循环的

int j= 1 ;

system (p) ;

prin ((*l) , (*end)) ;

while (j){

printf ("*********************************** e: 编辑相应行 *************************************n") ;

printf ("*********************************** s: 搜索字符串 *************************************n") ;

printf ("*********************************** t: 统计单词个数 ***********************************n") ;

printf ("*********************************** q: 退出编辑 ***************************************n") ;

scanf("%c",choice);

scanf("%c" , choice) ; //????莫名其妙的问题,非要两个请求输入语句才肯停下来!

switch (choice)

{

case 'e' : {

i = 1 ;

while (i)

{

search( (*l) , (*end) );

system (p) ;

prin( (*l) , (*end) ) ;

printf ("n1 继续编辑 0 结束编辑n") ;

scanf ("%d" , i) ;

}

}

break;

case 's' : {

i = 1 ;

while (i)

{

searchstr( (*l) , (*end) );

getchar();

getchar();

system (p) ;

prin( (*l) , (*end) ) ;

printf ("n1 继续搜索 0 结束搜索n") ;

scanf ("%d" , i) ;

}

}

break;

case 't' : {

coutword ( (*l) , (*end) ) ;

getchar() ;

}break;

default : return 0 ;

}

system (p) ;

prin( (*l) , (*end) ) ;

printf ("n1 回到编辑菜单 0 结束编辑n") ;

scanf ("%d" , j) ;

if (j == 1)

system (p) ;

else

return 0 ;

}

return 0 ;

}

//**********实现第一个模块:新建空白文档**********//

int newtext( lnodetype ** l ,lnodetype ** end )

{

printf ( "新文本文件:n" ) ;

int i = 1 ;

char judstr[MAX] ;

lnodetype * temp ;

char jud ;

char * p = "cls" ;

while ( 1 ){

link( (*l) , (*end) ) ;

jud = (*end)-date[0] ;

if ( jud == '5' ){ //输入‘5’结束一切

temp = (*end) ;

(*end) = (*end)-prior ;

free (temp) ;

while (1){

printf ( "******************************* out :退出不保存 ****************************n") ;

printf ( "******************************* edit :编辑信息 *****************************n") ;

printf ( "******************************* quit :退出而不存盘 **************************n") ;

printf ( "******************************* qas :退出且存盘 ****************************n") ;

printf ( "******************************* con :继续输入! *****************************n") ;

gets(judstr) ;

if ( !strcmp(judstr , "out") )

{

exitunsave( (*l) , (*end) ) ;

return 0 ;

}

else

if ( !strcmp(judstr , "qas") )

{

quitandsave( (*l) , (*end) ) ;

return 0 ;

}

else

if ( !strcmp(judstr , "edit") )

{

editmenu (l , end) ;

return 0;

}

system (p) ;

}

return 0 ;

}

}

return 0 ;

}

//**********这个是装入文件的函数**********//

int loadtaxt( char * filename )

{

FILE * fp ;

lnodetype * l ;

char ch ;

int i = 0 ;

char * p = "cls" ;

char judstr[MAX] ;

lnodetype * head ;

lnodetype * end ;

iniatelist ( head , end) ;

l = end = head ;

if ( (fp = fopen( filename, "r+")) == NULL ){

printf ("文件不能打开!n") ;

return 0 ;

}

ch = fgetc ( fp ) ;

while ( ch != '@' ){

lnodetype *s ;

s = (lnodetype *)malloc ( sizeof (lnodetype) ) ;

if ( s == NULL ){

printf ("内存空间不够,程序即将退出!") ;

return 0 ;

}

end-next = s ;

s-prior = end ;

end = end-next ;

l-number++ ;

s-quese = l-number ;

printf ("%d行", s-quese ) ;

while ( ch != '#'){

s-date[i] = ch ;

ch = fgetc (fp) ;

i++ ;

}

i = 0;

while ( (end-date[i]='a' end-date[i]='z') ||

(end-date[i]='A' end-date[i]='z') ||

(end-date[i]='0' end-date[i]='9' ) ||

(end-date[i]==' ') )

{

printf ( "%c" , end-date[i] ) ;

i++ ;

}

end-date[i] = '\0' ; //注意在节点的最好加上这个,以让退出保存功能函数知道此节点已结束

printf ( "n" ) ;

i = 0;

ch = fgetc ( fp ) ;

}

fclose (fp) ;

printf ("n文件成功装入!n") ;

while (1){

printf ( "******************************* out :退出不保存 ****************************n") ;

printf ( "******************************* edit :编辑信息 *****************************n") ;

printf ( "******************************* qas :退出且存盘 ****************************n") ;

printf ( "******************************* con :继续输入! *****************************n") ;

scanf("%s",judstr);

if ( !strcmp(judstr , "out") )

{

exitunsave( l , end ) ;

return 0 ;

}

else

if ( !strcmp(judstr , "qas") )

{

quitandsave( l , end ) ;

return 0 ;

}

else

if ( !strcmp(judstr , "edit") )

{

editmenu (l , end) ;

return 0 ;

}

system (p) ;

}

return 0 ;

}

//**********主函数**********//

void main ( void )

{

//iniatelist (l , end) ;

//newtext(l , end) ;

char filename[MAX] ;

scanf ( "%s" , filename ) ;

loadtaxt( filename ) ;

}


当前名称:c语言打印到记事本的函数 c语言简易记事本
当前地址:http://kswjz.com/article/ddohdis.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流