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

thisを見て、空白文字を区切り文字として使用してください。

于 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 に答える