c语言利用文件储存字符串,C 实现输入字符串,储存到文件里面,然后打印出来...

C 实现输入字符串,存储到文件里面,然后打印出来

我想输入字符串,包含空格的,以回车为结束符,但是我不知道该怎么动态获取输入的大小,求教了。

------解决思路----------------------

120928159.gif循环读取字符

/**************************************

*FILE    :D:\c\main.c

*PROJECT :NULL

*AUTHOR  :707wk

*CREATED :2015/7/10 13:33:43

*TEXT    :NULL

*EMAIL   :gtsoft_wk@foxmail.com

*CODE    :https://github.com/707wk

*LOGO    :

#########

############

#############

##  ###########

###  ###### #####

### #######   ####

###  ########## ####

####  ########### ####

#####   ###########  #####

######   ### ########   #####

#####   ###   ########   ######

######   ###  ###########   ######

######   #### ##############  ######

#######  ##################### #######

#######  ##############################

#######  ###### ################# #######

#######  ###### ###### #########   ######

#######    ##  ######   ######     ######

#######        ######    #####     #####

######        #####     #####     ####

#####        ####      #####     ###

#####      ;###        ###      #

##       ####        ####

***************************************/

#include 

int main()

{

char ch;

FILE* fpout;

FILE* fpin;

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

for(;ch=getchar();)

{

if(ch=='\n')break;

fputc(ch,fpout);

}

fclose(fpout);

fpin=fopen("data.txt","rb");

for(;!feof(fpin);)

{

printf("%c",fgetc(fpin));

}

fclose(fpin);

return 0;

}

------解决思路----------------------

仅供参考:#include 

#include 

#define MAXLEN 1000

char ln[MAXLEN];

FILE *f;

int i,z;

int b,n,L;

int main(int argc,char **argv) {

if (argc<2) {

printf("Usage:%s fullpathfilename.ext\nget total blank/non-blank/total linenumbers.\n",argv[0]);

return 1;

}

f=fopen(argv[1],"r");

if (NULL==f) {

printf("Can not open file [%s]!\n",argv[1]);

return 2;

}

z=0;

b=0;

n=0;

L=0;

while (1) {

if (NULL==fgets(ln,MAXLEN,f)) break;

L=strlen(ln);

if ('\n'==ln[L-1]) {

if (0==z) {

for (i=0;i

if (!(' '==ln[i]

------解决思路----------------------

'\t'==ln[i])) break;

}

if (i

}

if (0==z) b++; else n++;

z=0;

} else {

if (0==z) {

for (i=0;i

if (!(' '==ln[i]

------解决思路----------------------

'\t'==ln[i])) break;

}

if (i

}

}

}

fclose(f);

if (L>0 && '\n'!=ln[L-1]) {

if (0==z) b++; else n++;//最后一行末尾无'\n'也计算

}

printf("File:[%s] total blank/non-blank/total linenumbers is %d/%d/%d\n",argv[1],b,n,b+n);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值