C 实现输入字符串,储存到文件里面,然后打印出来
C 实现输入字符串,存储到文件里面,然后打印出来
我想输入字符串,包含空格的,以回车为结束符,但是我不知道该怎么动态获取输入的大小,求教了。
------解决思路----------------------
循环读取字符
------解决思路----------------------
仅供参考:
我想输入字符串,包含空格的,以回车为结束符,但是我不知道该怎么动态获取输入的大小,求教了。
------解决思路----------------------
/**************************************
*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 <stdio.h>
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 <stdio.h>
#include <string.h>
#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<L-1;i++) {
if (!(' '==ln[i]
------解决思路----------------------
'\t'==ln[i])) break;
}
if (i<L-1) z=1;//当前行不是空行
}
if (0==z) b++; else n++;
z=0;
} else {
if (0==z) {
for (i=0;i<L;i++) {
if (!(' '==ln[i]
------解决思路----------------------
'\t'==ln[i])) break;
}
if (i<L) z=1;//当前行不是空行
}
}
}
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;
}