使用c++语言写一个自动填表的程序
时间: 2023-05-27 11:01:55 浏览: 98
由于题目没有说明具体要填哪个表格,这里假设要填写的是一个包含姓名、性别、年龄三个字段的表格,同时假设需要填写的表格保存在一个名为“table.csv”的CSV文件中,每一行数据以逗号分隔。
代码实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_SIZE 20 // 姓名长度上限
#define MAX_GENDER_SIZE 5 // 性别长度上限
#define MAX_AGE_SIZE 5 // 年龄长度上限
#define MAX_INPUT_SIZE 100 // 用户输入长度上限
int main()
{
FILE* fp; // 指向文件的指针
char name[MAX_NAME_SIZE], gender[MAX_GENDER_SIZE], age[MAX_AGE_SIZE]; // 存储用户输入的姓名、性别、年龄
char input[MAX_INPUT_SIZE]; // 存储用户输入的字符串
char line[MAX_INPUT_SIZE]; // 存储读取到的文件中的一行数据
char* token; // 存储通过逗号分隔读取到的数据
int i;
// 打开文件
fp = fopen("table.csv", "a+");
if (fp == NULL) {
printf("文件打开失败。\n");
exit(1);
}
// 获取用户输入
printf("请输入姓名、性别、年龄,以空格分隔:\n");
fgets(input, MAX_INPUT_SIZE, stdin);
// 解析用户输入
token = strtok(input, " ");
strncpy(name, token, MAX_NAME_SIZE);
name[MAX_NAME_SIZE-1] = '\0'; // 确保字符串以'\0'结尾
token = strtok(NULL, " ");
strncpy(gender, token, MAX_GENDER_SIZE);
gender[MAX_GENDER_SIZE-1] = '\0';
token = strtok(NULL, " ");
strncpy(age, token, MAX_AGE_SIZE);
age[MAX_AGE_SIZE-1] = '\0';
// 写入文件
fprintf(fp, "%s,%s,%s\n", name, gender, age);
// 输出表格内容
rewind(fp); // 回到文件开头
printf("姓名\t性别\t年龄\n");
for (i=0; i<5; i++) {
if (fgets(line, MAX_INPUT_SIZE, fp) == NULL) break;
token = strtok(line, ",");
printf("%s\t", token);
token = strtok(NULL, ",");
printf("%s\t", token);
token = strtok(NULL, ",");
printf("%s\n", token);
}
// 关闭文件
fclose(fp);
// 程序结束
return 0;
}
```
运行程序后,根据提示输入姓名、性别、年龄,程序会自动将这些信息填写到表格中,并输出表格内容。这里为了方便,只输出了前五行数据。可以根据实际需求修改程序。
阅读全文