0

我有一个名为 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;
}

你能帮助我吗?

4

2 回答 2

0

看看这个,并使用空白字符作为分隔符。

于 2013-03-28T11:16:28.617 回答
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);
    }
}
于 2013-03-28T11:18:49.003 回答