我目前正在虚拟机上工作,并且尝试从多行文件中扫描对编译器的指令。
每行的格式为: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/