#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*/