文件中的信息使用逗号隔开 如何使用fscanf得到用逗号隔开的每个字符串呢
时间: 2024-11-27 21:14:30 浏览: 13
txt_read.zip_fscanf_matlab fprintf_matlab txt_read txt_textscan
5星 · 资源好评率100%
当你需要从文件中读取由逗号分隔的字符串时,可以使用`fscanf`函数结合字符数组或者动态内存分配来逐个获取字段。这里是一个基本的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 需要这个头文件用于malloc()
// 定义存储单个字符串的结构体或数组
#define MAX_LINE_LENGTH 100 // 最大字符串长度
typedef struct {
char str[MAX_LINE_LENGTH]; // 字符串变量
size_t len; // 字符串实际长度
} StrPair;
int main() {
FILE *file = fopen("your_file.txt", "r"); // 打开文件
if (file == NULL) {
perror("Error opening file");
return 1;
}
StrPair pairs[3]; // 假设最多有3个字符串会被分割
int i = 0;
while (fscanf(file, "%s,%s", pairs[i].str, &pairs[i].len) == 2 && i < sizeof(pairs)/sizeof(pairs[0])) { // 使用"%s"匹配字符串,%d匹配整数表示长度
pairs[i].str[pairs[i].len] = '\0'; // 添加终止符
++i; // 每次成功读取后增加计数
}
fclose(file); // 关闭文件
for (int j = 0; j < i; j++) {
printf("String %d: %s\n", j+1, pairs[j].str);
}
阅读全文