C语言创建一个文件,写入数据并换行,再依次读取每行的数据,将读取的行数据以一定的格式命名为另一文件的文件名


#include <stdio.h>

#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <dir.h>

//*********************************
//字符串连接函数
char *catstr(char *a,char *b)
{
  char *p =a, *q=b;
  while(*p) p++;
  while(*q) *p++ =*q++;
  *p ='\0';
  return a;
}
//***********************************
//读取SN.txt的每行字符串
char *ReadSpeacialLine(int WhichLine)
{
char StrLine[1024];
FILE *fp;
int CurrentIndex = 0;
char filename[] = "demo.TXT";
if((fp = fopen(filename, "r")) == NULL)
{     
printf("Open file SN.txt Error\n");
return NULL;
}


while(!feof(fp))
{
if(CurrentIndex == WhichLine - 1)
{
fgets(StrLine, 1024, fp);
//printf("%s", StrLine);
if ( (StrLine[strlen(StrLine)-1]) == '\n' )
StrLine[strlen(StrLine)-1] ='\0';
return StrLine;
}
fgets(StrLine, 1024, fp);
CurrentIndex++;
}
fclose(fp);
return NULL;
}
//***************************************

int main(void)
{
char str[20];
FILE *fp;
FILE *fpread;
char readsn[15];
int i, l;
char a1[7],a2[3];
char filename[14];

fp = fopen ("demo.txt","wt+");
if(fp == NULL)
{
printf("create file demo.txt failed!\n");
exit(1);
}
//循环输入SN,存入文件demo.txt
for( i =0 ; i <3;i++)
{
printf("Please input SN:\n");
//fgets(str,11,stdin);
gets(str);
printf("%d\n",strlen(str));
           //判断SN是否为10位
   while( 10 !=strlen(str))
{
 printf("Please input SN again:\n");
 //fgets(str,11,stdin);
 gets(str);
 printf("%d\n",strlen(str));
}

//将输入的小写字母转换为大写
for (l = 0; l <=strlen(str); l++)
{
if(str[l]>='a' && str[l]<='z')
str[l] -= 32;
}
fputs(str,fp);
fputs("\n",fp);
}

fclose(fp);
/*
//读取文件的第一行
fpread=fopen("demo.txt","r");
fgets(readsn,11,fpread);
printf("%s\n",readsn);
fclose(fpread);
*/
    
   //读取文件的每一行,并去掉换行符号
for (i = 1; i<=3; i++)
{

printf("%s\n",ReadSpeacialLine(i));

//分割为前7位

strncpy(a1,ReadSpeacialLine(i),7);
                *(a1+7)='\0';
printf("%s\n",a1);
system("pause");

//分割为后3位

strncpy(a2,ReadSpeacialLine(i)+7,strlen(ReadSpeacialLine(i))-7+1);
               *(a2+strlen(ReadSpeacialLine(i))-7)='\0';
  printf("%s\n",a2);
system("pause");
//链接为需要的格式1234567.890
sprintf(filename,"%s.%s",a1,a2);
printf("%s\n",filename);
system("pause");

    }
return 0;

}


/*BC 编译过验证OK*/

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值