gpt4 book ai didi

无法使用 sscanf 获取值

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:19 25 4
gpt4 key购买 nike

我正在尝试从包含以下行的文本文件中获取输入

John,.) 789.. 89,88,79,69    

但是,我无法使用 sscanf 语句正确获取数字,我哪里出错了?名称打印正确,但标记是垃圾值...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
char name[20];
int ID;
int marks[4];

} details;

int main()
{
char string[100];
details student[2];

FILE *ptr = fopen("testing7.txt", "r");
if ((ptr = fopen ("testing7.txt", "r")) != NULL)
printf("file successfully opened\n");
else
{
printf("file could not be opened\n");
return 0;
}

fgets(string,100, ptr);

// testing to see if string was obtained
printf("%s", string);

sscanf(string,"%s,.) %d.. %d,%d,%d,%d", student[0].name, &student[0].ID, &student[0].marks[0], &student[0].marks[1],&student[0].marks[2],&student[0].marks[3]);

printf("%s\t%d\t%d\t%d\t%d\t%d\n", student[0].name, student[0].ID, student[0].marks[0], student[0].marks[1], student[0].marks[2], student[0].marks[3]);

fclose(ptr);
return 0;
}

最佳答案

逗号、句号或括号不被视为空白字符,因此格式格式说明符 %s 将使用它们。

我还没有对此进行测试,但以下格式字符串应该适用于您的情况:

%[^,].) %d.. %d,%d,%d,%d

解释:

%[^,] => 阅读直到遇到逗号。

关于无法使用 sscanf 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20934006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com