簡體   English   中英

fscanf讀取多個字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM