[英]fscanf reading multiple strings
因此,我正在创建一个ac程序,该程序读取一个查询文件,其中填充了要在表上执行的命令。 所以我用了:
char command[100];
while(1)
{
fscanf(query, "%s", command);
x=strcmp(command, "select");
//continue with checking for other commands etc.
//if the command is stop then the loop breaks
}
我的问题是,当我第一次调用fscanf时,我知道它将把命令保存到命令数组中。 但是我应该将字符串“ empty”还是null作为更好的放置方式? 我不确定在使用strcmp或通常使用fscanf覆盖数组时是否有必要。 谢谢!
您不必担心会被覆盖的内容。 您只( 总是 )担心在使用它的值之前对其进行初始化。 因为否则它是未定义的行为。
更重要的是,您应始终检查在内存上运行的函数的返回值。 您永远都不能指望“会起作用”。 因为一段时间后,您会突然遇到细分错误 ,并且不知道如何解决。
如果您不知道如何:
int check;
check = fscanf(query, "%s", command);
if(check == EOF)
perror("fscanf");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.