【记录】编译时出现error C4996 解决方法

7 篇文章 0 订阅
  1. 使用安全的函数替换老的函数
  2. 屏蔽警告信息
  • 1.#pragma warning(disable:4996)
  • 2.在预编译头文件stdafx.h里定义下面的宏(include其他头文件的最前面):

#define _CRT_SECURE_NO_DEPRECATE或#define_CRT_SECURE_NO_WARNINGS

  • 3.更改预处理定义:

项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加_CRT_SECURE_NO_DEPRECATE 

--------------------- 
作者:天已青色等烟雨来 
来源:CSDN 
原文:https://blog.csdn.net/x356982611/article/details/14120123 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在修改车牌号的候,需要避免车牌号重复的情况。可以采用如下算法: 1. 提示用户输入要修改的车牌号 2. 在车辆信息文件中查找该车牌号对应的记录,如果找到了,就输出该记录的详细信息并提示用户输入修改后的信息 3. 如果用户修改了车牌号,需要判断修改后的车牌号是否已经存在,如果存在,则提示用户重新输入,直到输入一个不存在的车牌号为止 4. 将修改后的信息写入车辆信息文件中,更新车辆信息 下面是一个示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_RECORDS 1000 #define MAX_LINE_LENGTH 1024 struct Car { char plate[10]; char brand[20]; char model[20]; int year; int mileage; }; struct Car cars[MAX_RECORDS]; int num_cars = 0; // 读取车辆信息文件 void read_cars(const char *filename) { FILE *fp = fopen(filename, "r"); if (fp == NULL) { printf("Error: cannot open file %s\n", filename); exit(1); } char line[MAX_LINE_LENGTH]; while (fgets(line, MAX_LINE_LENGTH, fp)) { char *token; token = strtok(line, ","); strcpy(cars[num_cars].plate, token); token = strtok(NULL, ","); strcpy(cars[num_cars].brand, token); token = strtok(NULL, ","); strcpy(cars[num_cars].model, token); token = strtok(NULL, ","); cars[num_cars].year = atoi(token); token = strtok(NULL, ","); cars[num_cars].mileage = atoi(token); num_cars++; } fclose(fp); } // 写入车辆信息文件 void write_cars(const char *filename) { FILE *fp = fopen(filename, "w"); if (fp == NULL) { printf("Error: cannot open file %s\n", filename); exit(1); } for (int i = 0; i < num_cars; i++) { fprintf(fp, "%s,%s,%s,%d,%d\n", cars[i].plate, cars[i].brand, cars[i].model, cars[i].year, cars[i].mileage); } fclose(fp); } // 查找车辆信息 int find_car(const char *plate) { for (int i = 0; i < num_cars; i++) { if (strcmp(cars[i].plate, plate) == 0) { return i; } } return -1; } // 修改车辆信息 void modify_car() { char plate[10]; printf("Enter the plate number of the car to modify: "); scanf("%s", plate); int index = find_car(plate); if (index == -1) { printf("Error: car not found\n"); return; } struct Car car = cars[index]; printf("Current car information:\n"); printf("Plate number: %s\n", car.plate); printf("Brand: %s\n", car.brand); printf("Model: %s\n", car.model); printf("Year: %d\n", car.year); printf("Mileage: %d\n", car.mileage); struct Car new_car; printf("Enter new plate number (or press Enter to skip): "); fgets(new_car.plate, 10, stdin); if (new_car.plate[0] != '\n') { // 用户输入了新的车牌号 new_car.plate[strlen(new_car.plate) - 1] = '\0'; if (find_car(new_car.plate) != -1) { printf("Error: plate number already exists\n"); return; } } else { strcpy(new_car.plate, car.plate); } printf("Enter new brand (or press Enter to skip): "); fgets(new_car.brand, 20, stdin); if (new_car.brand[0] != '\n') { new_car.brand[strlen(new_car.brand) - 1] = '\0'; } else { strcpy(new_car.brand, car.brand); } printf("Enter new model (or press Enter to skip): "); fgets(new_car.model, 20, stdin); if (new_car.model[0] != '\n') { new_car.model[strlen(new_car.model) - 1] = '\0'; } else { strcpy(new_car.model, car.model); } printf("Enter new year (or press Enter to skip): "); char year_str[10]; fgets(year_str, 10, stdin); if (year_str[0] != '\n') { new_car.year = atoi(year_str); } else { new_car.year = car.year; } printf("Enter new mileage (or press Enter to skip): "); char mileage_str[10]; fgets(mileage_str, 10, stdin); if (mileage_str[0] != '\n') { new_car.mileage = atoi(mileage_str); } else { new_car.mileage = car.mileage; } cars[index] = new_car; printf("Car information updated.\n"); } int main() { read_cars("cars.txt"); modify_car(); write_cars("cars.txt"); return 0; } ``` 在上面的代码中,我们首先定义了一个结构体`struct Car`,用于存储车辆信息。然后定义了一个全局数组`cars`,用于存储所有的车辆信息。`num_cars`表示当前已经记录的车辆数量。 `read_cars`函数用于读取车辆信息文件。`write_cars`函数用于写入车辆信息文件。`find_car`函数用于查找车辆信息。`modify_car`函数用于修改车辆信息。 在`modify_car`函数中,我们首先提示用户输入要修改的车牌号。然后使用`find_car`函数查找该车牌号对应的记录。如果找到了,就输出该记录的详细信息,并提示用户输入修改后的信息。在输入新的车牌号,我们需要判断是否已经存在,如果存在则需要重新输入。 最后,我们将修改后的信息写入车辆信息文件中,并输出提示信息。 注意,这里的文件格式为CSV格式,即逗号分隔的文本文件。每行记录包含车牌号、品牌、型号、年份和里程数,用逗号分隔。在读取和写入文件,我们使用`fgets`和`fprintf`函数来读取和写入文本行。在输入字符串,我们使用`fgets`函数来避免缓冲区溢出的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值