1.
main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE *fp = fopen("1.txt", "r");
if (NULL == fp)
{
perror("fopen");
return -1;
}
char buf[30] = "";
int count;
while (fgets(buf, sizeof(buf), fp) != NULL)
{
for (int i = 0; buf[i] != 0; i++)
{
if (buf[i] == '\n')
{
count++;
}
}
}
printf("有%d个/n", count);
return 0;
}
2.
main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
FILE *fp = fopen("time.txt", "a+");
if (NULL == fp)
{
perror("fopen");
return -1;
}
time_t t;
int num = 1;
char c;
struct tm *info = NULL;
while (fscanf(fp, "%c", &c) != EOF)
{
if (c == '\n')
{
num++;
}
}
while (1)
{
time(&t);
info = localtime(&t);
fprintf(fp, "[%d] %d-%02d-%02d %02d:%02d:%02d\n", num,
info->tm_year + 1900, info->tm_mon + 1, info->tm_mday,
info->tm_hour, info->tm_min, info->tm_sec);
fflush(fp);
fprintf(stderr, "正在打印第%d个时间:%d-%02d-%02d %02d:%02d:%02d\r", num++,
info->tm_year + 1900, info->tm_mon + 1, info->tm_mday,
info->tm_hour, info->tm_min, info->tm_sec);
sleep(1);
}
return 0;
}
3.实现注册功能,同一用户名不能重复注册
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int menu()
{
int num;
printf("================\n");
printf("请选择你的选项:\n");
printf("1.注册\n");
printf("2.登录:\n");
printf("3.查看密码文件:\n");
printf("4.结束程序\n");
printf("================\n");
scanf("%d", &num);
return num;
}
int login()
{
char u[20];
char p[20];
char usru[20];
char usrp[20];
FILE *fp = fopen("usr.txt", "r");
if (NULL == fp)
{
perror("fopen");
return -1;
}
printf("================\n");
printf("登录\n");
printf("================\n");
printf("请输入用户名:\n");
scanf("%s", u);
printf("请输入密码:\n");
scanf("%s", p);
while (fscanf(fp, "%s %s\n", usru, usrp) != EOF)
{
if (strcmp(u, usru) == 0)
{
if (strcmp(p, usrp) == 0)
{
printf("密码正确登录成功\n");
// 关闭
fclose(fp);
return 0;
}
printf("密码错误\n");
// 关闭
fclose(fp);
return -1;
}
}
printf("账户不存在\n");
// 关闭
fclose(fp);
return -1;
}
int reg()
{
char username[20];
char userpwd[20];
char name[20];
char pwd[20];
printf("================\n");
printf("注册\n");
printf("================\n");
reg:
printf("请输入要注册的用户名:\n");
scanf("%s", name);
FILE *fp = fopen("usr.txt", "r+");
if (NULL == fp)
{
perror("fopen");
return -1;
}
while (fscanf(fp, "%s %s\n", username, userpwd) != EOF)
{
if (strcmp(name, username) == 0)
{
printf("用户名重复,请重新输入!\n");
goto reg;
}
}
printf("请输入要注册的密码:\n");
scanf("%s", pwd);
fseek(fp, 0, SEEK_END);
fprintf(fp, "%s %s\n", name, pwd);
printf("注册成功!");
fclose(fp);
return 0;
}
void output()
{
char c;
FILE *fp = fopen("usr.txt", "r");
if (NULL == fp)
{
perror("fopen");
return -1;
}
while ((c = fgetc(fp)) != EOF)
{
printf("%c", c);
}
fclose(fp);
return 0;
}
int main(int argc, const char *argv[])
{
start:
switch (menu())
{
case 1:
if (reg() == -1)
{
printf("注册失败!");
}
printf("返回主菜单\n");
goto start;
break;
case 2:
if (login() == -1)
{
printf("请重新选择选项\n");
goto start;
// printf("登录失败!\n");
return -1;
}
else
{
printf("登录成功");
return 0;
}
break;
case 3:
output();
goto start;
break;
case 4:
return -1;
break;
default:
printf("输入异常,请重新输入!\n");
goto start;
break;
}
}