我可不可以在这个main函数里再加上读取另一个txt的代码,会和原本的冲突吗
时间: 2024-03-16 15:43:28 浏览: 79
C/C++使用WinIO读取CMOS数据代码
你可以在 `main` 函数中加入读取另一个 `txt` 文件的代码,但是需要注意以下几点:
1. 确保读取的两个文件使用不同的文件指针,否则会出现冲突。在读取第二个文件时,你需要重新定义另一个文件指针,并使用不同的变量名来表示它。
2. 如果读取第二个文件的代码和第一个文件的代码有重复部分,可以将它们封装成一个函数,并在 `main` 函数中调用这个函数,以避免重复代码的出现。
3. 如果读取的两个文件的格式不同,需要分别定义不同的变量来存储它们的数据,并使用不同的描述符来读取它们。
举个例子,如果你要读取两个 `txt` 文件,分别叫做 `data1.txt` 和 `data2.txt`,可以使用类似下面的代码:
```c
#define MAX_LINES 1000 // 假设最多有 1000 行数据
int main() {
// 读取第一个文件
FILE *fp1;
char filename1[] = "data1.txt";
fp1 = fopen(filename1, "r"); // 打开文件
if (fp1 == NULL) {
printf("Failed to open file %s\n", filename1);
return 1;
}
int nums1[MAX_LINES]; // 定义一个数组来存储数字
int i1 = 0;
while (fscanf(fp1, "%*[^ ] %d", &nums1[i1]) != EOF) {
i1++;
if (i1 >= MAX_LINES) { // 如果超过了最大行数,就退出循环
break;
}
}
fclose(fp1); // 关闭文件
// 在这里,你可以使用 nums1 数组来进行进一步的处理
// ...
// 读取第二个文件
FILE *fp2;
char filename2[] = "data2.txt";
fp2 = fopen(filename2, "r"); // 打开文件
if (fp2 == NULL) {
printf("Failed to open file %s\n", filename2);
return 1;
}
float nums2[MAX_LINES]; // 定义一个数组来存储数字
int i2 = 0;
while (fscanf(fp2, "%f", &nums2[i2]) != EOF) {
i2++;
if (i2 >= MAX_LINES) { // 如果超过了最大行数,就退出循环
break;
}
}
fclose(fp2); // 关闭文件
// 在这里,你可以使用 nums2 数组来进行进一步的处理
// ...
return 0;
}
```
这里分别定义了 `fp1` 和 `fp2` 两个文件指针来打开两个 `txt` 文件,并使用不同的变量名来存储它们的数据。在读取第一个文件时,使用整型数组 `nums1` 来存储每行的第二列数字;在读取第二个文件时,使用浮点型数组 `nums2` 来存储每行的数字。读取完两个文件后,你可以使用 `nums1` 和 `nums2` 数组来进行进一步的处理。
阅读全文