我有一个log.csv和db.csv文件。如果它们都包含相同的数字,则没有任何反应。如果db.csv的数字较大,则log.csv将使用与db.csv相同的编号进行更新
如果不存在,我当前的代码会通知哪个文件丢失。这是使用try的正确方法吗?或者我应该尝试一下,除了每一个打开'声明?
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
//declare function
void get_data();
int main()
{
//local variable declaration
int input;
int criteria_1 = 1970;
int criteria_2 = 2020;
// ask for input and store
cout << "Enter the year: ";
cin >> input;
//call the function to validate the number
get_data(input, criteria_1, criteria_2);
return 0;
}
//define function
void get_data(int x, int y, int z)
{
// set variable for what is being inputted
int input;
//repeat asking user for input until a valid value is entered
while (x <= y||x >= z){
cout << "The valid range is >=" + y;
cin >> x;
input = x;
}
//display output on screen
cout << input << endl;
//reset variable for what was inputted
input = 0;
return;
}
答案 0 :(得分:1)
为什么不在一行上打开多个?在循环中重复打开任何文件,而实际上取决于循环变量是非常低效的
with open("log.csv", "rb+") as log, open("db.csv", "rb") as db:
for log_number in log:
但是,如果您确实需要正确的数据库,请使用sqlite3
模块并在单个数据库文件中创建SQL表,而不是维护单独的文件。用户已经存在或者找到最大值的选择也是简单的操作