我目前正在研究虚拟机,我正在尝试从多行文件中扫描指令到我的编译器。 每行的格式为: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和其他一些我记不住的了。 非常感谢我能得到的任何帮助,谢谢!
答案 0 :(得分:0)
您无法使用scanf来获取字符串的输入。您必须使用sscanf函数从字符串中获取输入。
然后你在scanf中传递%s的字符数组。那是不对的。因为,"字符串"是字符数组字符串[0]的地址而不是"& string"。
因此,您将尝试以下代码。
while (fgets(buf, sizeof(buf), fPtr) != NULL)
{
sscanf(buf,"%d%s%d",&address,string,&value);
if(string == "SET")
{
printf("SET found");
}
}