我有一个名为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;
}
你能帮助我吗?
答案 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);
}
}