如何用字符串中的数字分隔单词

时间:2013-03-28 11:08:37

标签: c string fgets words

我有一个名为commands.txt的文本文件,其中包含一些命令,后跟一些参数。例如:

STOP 1 2 4
START 5 2 1 8
MOVE
CUT 0 9

我想读取此文本文件中的每一行并打印类似这样的内容

STOP: 1 2 3
START: 5 2 1 8
MOVE:
CUT: 0 9

我用fgets阅读每一行然后我尝试使用sscanf但是不起作用。

char line[100]   // here I put the line
char command[20] // here I put the command
args[10]         // here I put the arguments



 #include<stdio.h>
    int main()
    {
    FILE *f;
char line[100];
char command[20];
int args[10];

f=fopen("commands.txt" ,"rt");
while(!feof(f))
{
fgets(line , 40 , f);
//here i need help
}
fclose(f);
return 0;
}

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

查看this,并使用空格字符作为分隔符。

答案 1 :(得分:0)

您可以使用fscanf()来读取文件。

如果我们假设在您的文件中除了换行符之外的每行末尾没有空格(空格,制表符,...),则可以使用以下代码。它比使用fgets更简单,每次都分开

int main()

{
    FILE *f;
    char command[20];
    char args[10];
    f=fopen("commands.txt" ,"rt");
    while(fscanf(f, "%s %[^\n]", command, args)>0)
    {
        printf("%s: %s\n", command, args);
    }
}