我想要使用Fatfs修改csv文件第二行所有列的值,应该怎么去做,请给出具体的代码实现及解释
时间: 2023-04-05 20:01:37 浏览: 120
您好,对于您的问题,可以使用以下代码实现:
#include "ff.h"
int main(void)
{
FIL file;
FRESULT res;
char buffer[512];
UINT br, bw;
int row = 0, col = 0;
char *token;
// 打开文件
res = f_open(&file, "test.csv", FA_READ | FA_WRITE);
if (res != FR_OK) {
return 1;
}
// 读取文件内容
res = f_read(&file, buffer, sizeof(buffer), &br);
if (res != FR_OK) {
return 1;
}
// 修改第二行所有列的值
token = strtok(buffer, "\r\n");
while (token != NULL) {
row++;
if (row == 2) {
token = strtok(token, ",");
while (token != NULL) {
col++;
if (col > 1) {
sprintf(token, "%d", col * 2); // 修改值
}
token = strtok(NULL, ",");
}
break;
}
token = strtok(NULL, "\r\n");
}
// 将修改后的内容写回文件
res = f_lseek(&file, 0);
if (res != FR_OK) {
return 1;
}
res = f_write(&file, buffer, br, &bw);
if (res != FR_OK) {
return 1;
}
// 关闭文件
f_close(&file);
return 0;
}
这段代码使用了 FatFs 库来操作文件系统,首先打开文件,然后读取文件内容,接着使用 strtok 函数分割每一行的内容,找到第二行后再分割每一列的内容,修改需要修改的值,最后将修改后的内容写回文件中。
阅读全文
相关推荐


















