作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试读取逗号分隔值格式的文件,程序读取了前两种数据类型,但无法读取最后一种。请帮我一些忙
这是我正在尝试读取的文件中的内容:
Jane,50,400.60
代码如下:
FILE* fptr;
char fileContent[1000];
char name[100];
int age = 0;
double bBalance = 0;
fptr = fopen("NTD.txt", "r");
if (fptr == NULL)
{
}
else
{
while (fscanf(fptr, "%30[^ ,], %d[^ ,], %lf[^ ,]",
&name, &age, &bBalance) != NULL)
{
printf("---------------- \n");
printf("NAME: %s \n", name);
printf("AGE: %d \n", age);
printf("BANK BALANCE: %lf \n", bBalance);
}
}
这是程序应该输出的内容:
----------------
NAME: Jane
AGE: 50
BANK BALANCE: 400.600000
这是程序实际输出的内容:
----------------
NAME: Jane
AGE: 50
BANK BALANCE: 0.000000
谁能告诉我我做错了什么?
如果您还需要什么,请在下面评论。
最佳答案
在 %d[^ ,]
中,%d
匹配十进制数字,然后 [
寻找文字 [
字符,但输入中没有字符,因此 fscanf
停止。
您可能需要一次只对一个十进制数字使用 fscanf
,并编写额外的代码来检查它们之间的字符。
关于c - fscanf 不破坏完全拆分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65715967/
我是一名优秀的程序员,十分优秀!