我目前正在虚拟机上工作,并且尝试从多行文件中扫描对编译器的指令。
每行的格式为:xx yyyy zzz
-xx:是整数(表示内存位置)
-yyyy:是字符或字符串(代表指令)
-zzz:也是整数(表示要存储的值)

这是我尝试过的:

while (fgets(buf, sizeof buf, fPtr) != NULL)
{
    scanf(buf,"%d %s %d",&address,&string,&value);
        if(string == "SET")
        {
            printf("SET found");
        }
}


我尝试过scanf,fscanf和其他一些我不记得的方法。
非常感谢您能提供的任何帮助,谢谢!

最佳答案

您无法使用scanf in从字符串中获取输入。您必须使用sscanf函数从字符串获取输入。

然后,您将在scanf中为%s传递一个字符数组。那是不对的。因为“ string”是字符数组string [0]的地址,而不是“&string”。

因此,您将尝试以下代码。

while (fgets(buf, sizeof(buf), fPtr) != NULL)
{
    sscanf(buf,"%d%s%d",&address,string,&value);
        if(string == "SET")
        {
            printf("SET found");
        }
}

关于c - 从单行读取多个数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33224413/

10-11 22:55
查看更多