从C中的文本文件中读取逗号分隔值

时间:2014-10-18 19:06:51

标签: c string file-io file-handling

我是C编程的新手,这是作业的一部分。我试图以格式:

读取逗号分隔的文本文件
 [value1], [value2]
在C中

并尝试将它们作为string和int参数传递给函数。我已经尝试过使用sscanf()甚至使用fgetc()进行操作而没有太多帮助。逗号之后的空格被证明是一个问题。

示例:

 2001, 102
 1314, 78
 0410, 910
 ...

请帮帮我。

谢谢。

1 个答案:

答案 0 :(得分:2)

感谢@rubberboots的帮助。

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

void main()
{
    FILE *fp = fopen("user.dat", "r");
    const char s[2] = ", ";
    char *token;
    int i;
    if(fp != NULL)
    {
        char line[20];
        while(fgets(line, sizeof line, fp) != NULL)
        {
            token = strtok(line, s);
            for(i=0;i<2;i++)
            {
                if(i==0)
                {   
                    printf("%s\t",token);
                    token = strtok(NULL,s);
                } else {
                    printf("%d\n",atoi(token));
                }       
            }
        }
        fclose(fp);
    } else {
        perror("user.dat");
    }   
}   

user.dat文件:

1000,76

0095,81

2910,178

0001,1

输出:

1000 76

0095 81

2910 178

0001 1